개발/IT정보
아파치 코르도바 (Apach Cordova) 세팅 정리
림쌍월
2020. 12. 24. 22:50
모바일 하이브리드 웹의 수요가 아주 급격하게 늘어나고 있습니다.
코르도바 , 아이오닉 , 리액트 , 플루터 ...
오늘은 그중에 최근에 사용했던 아파치 코르도바에 대한 간단 설치 포스팅을 진행하겠습니다.
0. 기본프로그램 설치
- nodejs 설치
- cordova 설치 : npm install -g cordova
(node package module) 로 전역 글로벌 옵션으로 코르도바를 설치 한다.
- Android Build 를 위한 AndroidStudio 설치
- Gradle 설치
- JAVA 설치 (path 등록 확인)
1-1. Cordova Project 생성 (ANDROID)
> npm install cordova-icon -g // cordova-icon 설치 (app icon)
> cordova create testCordova com.ch1.testCordova TestCordova
> cd testCordova
> cordova platform add android@8.0.0 // android platform 추가
> cordova plugin add cordova-plugin-whitelist
> cordova plugin add cordova-plugin-network-information // network 연결정보 plugin
> cordova plugin add cordova-plugin-device // device 정보 plugin
> cordova plugin add cordova-plugin-remote-injection // remote url에서 cordova plugin 사용 plugin
> cordova plugin add cordova-plugin-fcm-with-dependecy-updated@3.2.0 // FCM push plugin
> cordova plugin add wifiwizard // wifi 정보 plugin
> cordova plugin add cordova-plugin-geolocation // GeoLocation(GPS) Plugin
> cordova plugin add cordova.plugins.diagnostic // 위치 및 블루투스 on/off 여부 확인
(버젼 27.+ 이상만 지원)
> cordova plugin add cordova-plugin-ibeacon
> cordova plugin add cordova-plugin-splashscreen // Splashscreen plugin
> cordova plugin add cordova-plugin-app-version // app version check
> cordova plugin add cordova-plugin-x-toast // Toast
> cordova plugin add cordova-plugin-file-transfer // file upload/download
> cordova plugin add cordova-plugin-inappbrowser // window.open
> cordova plugin add cordova-plugin-camera
> cordova-icon // App Icon 생성
> cordova build android //오류발생시댓글참조
> cordova run android
> cordova build android —release 완료
1-2. Cordova Project 생성 (IOS)
> npm install -g cordova-icon // cordova-icon 설치 (app icon)
> cordova create testCordova com.ch1.testCordova TestCordova
> cd testCordova
> cordova platform add ios // ios platform 추가
> cordova plugin add cordova-plugin-whitelist
> cordova plugin add cordova-plugin-network-information // network 연결정보 plugin
> cordova plugin add cordova-plugin-device // device 정보 plugin
> cordova plugin add cordova-plugin-remote-injection // remote url에서 cordova plugin 사용 plugin
> cordova plugin add cordova-plugin-fcm-with-dependecy-updated // push plugin
> cordova plugin add wifiwizard // wifi 정보 plugin (SSID 정보 확인용)
> cordova plugin add cordova-plugin-geolocation // GeoLocation Plugin
> cordova plugin add cordova.plugins.diagnostic // 위치 및 블루투스 on/off 여부 확인
> cordova plugin add cordova-plugin-ibeacon
> cordova plugin add cordova-plugin-splashscreen // Splashscreen plugin
//v.1.1.0 부터 추가
> cordova plugin add cordova-plugin-app-version // app version check
> cordova plugin add cordova-plugin-x-toast // Toast
> cordova plugin add cordova-plugin-file-transfer // file upload/download
> cordova plugin add cordova-plugin-inappbrowser // window.open
> cordova plugin add cordova-plugin-camera
> cordova-icon // App Icon 생성
> cordova prepare ios
> cordova build ios
> cordova run ios
- ios의 경우 cordova-icon을 실행해서 생성된 icon의 경로와 파일명을 config.xml에 작성한다.
- ios의 경우 splash 이미지를 1개로 사용할 경우 Default@2x~universal~anyany.png 를 이미지 파일명으로 하여 config.xml에 작성한다.
<splash src="Default@2x~universal~anyany.png" />
- ios WiFi SSID를 접근하기 위한 셋팅 : XCode에서 Capabilities 수정 (Access Wifi Information, HotSpot and Network Extension)
cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
2. Config.xml 내용 추가
<icon src="icon.png" />
<!-- 화면 이동을 허용할 링크의 형식 지정(모든 형태에 대한 허용) -->
<allow-navigation href="*" />
<!-- 외부 링크 클릭시 현재 Cordova 화면에 머물러 있도록 함 -->
<preference name="stay-in-webview" value="true" />
<!-- remote url에서 cordova plugin 사용 -->
<preference name="CRIInjectFirstFiles" value="www/js/init.js" />
## Splash 관련하여 아래 내용이 추가되어야 함
<platform name="android">
<splash src="res/screen/android/splashscreen.png" density="port-hdpi"/>
<splash src="res/screen/android/splashscreen.png" density="port-ldpi"/>
<splash src="res/screen/android/splashscreen.png" density="port-mdpi"/>
<splash src="res/screen/android/splashscreen.png" density="port-xhdpi"/>
<splash src="res/screen/android/splashscreen.png" density="port-xxhdpi"/>
</platform>
<platform name="ios">
<splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
<splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
<splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
<splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
<splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
<splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
<splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
<splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
<splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<splash src="res/screen/ios/Default@2x~universal~comany.png" />
<splash src="res/screen/ios/Default@2x~universal~comcom.png" />
<splash src="res/screen/ios/Default@3x~universal~anyany.png" />
<splash src="res/screen/ios/Default@3x~universal~anycom.png" />
<splash src="res/screen/ios/Default@3x~universal~comany.png" />
</platform>
3. 실 웹주소 지정
<content src="https://XXX.XXX.XXX.XXX/mobile/index.htm" />
실제 정상 동작하는 웹시스템의 접속 정보를 기입
4. APK 파일
>cordova build android
파일 생성위치 : \platforms\android\app\build\outputs\apk\debug
5. plug in 설치 (toast )
>cordova plugin add cordova-plugin-x-toast
>cordova prepare
>cordova build android
현재는 하이브리드 웹앱을 구현할수 있는 방법이 정말 다양하게 많다..
가장 인지도 있고 많이 사용하며 어마어마한 커뮤니티를 형성하고 있는 react Naitive
그러나 이쪽에서 계속 바라본 입장 및 실제 개발을 하는 입장에서
생각해본다면 향후 1~2년 사이에 전혀 다른것이 나오지 않는다면 Flutter가 막강한 대세가 될듯하다.