2017년 1월 12일 목요일

phonegap으로 앱 개발 - 적용

* Node.js 실행
- Node.js command prompt


* 프로젝트 생성
C:\Users\wsol>md project

C:\Users\wsol>cd project

C:\Users\wsol\project>phonegap create app2
Using detached cordova-create
Creating a new cordova project.
...
C:\Users\wsol\project>


* Andorid Platform 추가

C:\Users\wsol\project>cd app2

C:\Users\wsol\project>app2>cordova platform add android

Adding android project...
Creating Cordova project for the Android platform:
       Path: platforms\android
       Package: com.phonegap.helloworld
       Name: Hello_World
       Activity: MainActivity
       Android target: android-24
Subproject Path: CordovaLib
Android project created with cordova-android@6.0.0
...
ANDROID_HOME=C:\Dev\android-sdk
JAVA_HOME=C:\Dev\Java\jdk1.8.0_112
Subproject Path: CordovaLib
...
(오래 걸림)

>> 에러 대처
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> You have not accepted the license agreements of the following SDK components:
[Android SDK Platform 24].
...
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.

==> Android Manager (C:\Dev\android-sdk\tools\android.bat) 실행시켜서 메시지 내용에 나오는 것을 추가

- 에러시 app2 폴더 삭제 후 다시 진행

...
BUILD SUCCESSFUL Total time: 2.661 secs ...


* 개발 내용 적용

- www 디렉토리에 개발 내용 모두 복사

- index.html에 폰캡 및 기기 설정

- 이미지 작업
   app2\platforms\android\res
app2\res\
app2\www\res\icon\
app2\www\res\screen\


* config.xml 수정 (app2\config.xml)
- utf-8 변환
- 아이디 설정, 버전 설정 : <widget id="kr.behappyone.app2" version="1.0.1"
- <name> <description> <author 수정
- SplashScreen 추가
<preference name="SplashScreen" value="screen" /> <preference name="SplashScreenDelay" value="3000" /> (3초 : 3000ms 지연효과)


* 안드로이드 네이티브앱 빌드

- C:\Users\wsol\project\app2>phonegap build android
   [phonegap] executing 'cordova build android ' ...
   [phonegap] completed 'cordova build android --no-telemetry'
==> app2\platforms\android\build\outputs\apk\android-debug.apk 생성됨


- C:\Users\wsol\project\app2>cordova build android --release
   ANDROID_HOME=C:\Dev\android-sdk
   JAVA_HOME=C:\Dev\Java\jdk1.8.0_112
   ...
   BUILD SUCCESSFUL

   Total time: 17.576 secs
   Built the following apk(s):
        C:/Users/wsol/project/app2/platforms/android/build/outputs/apk/android-release-unsigned.apk


- 키 생성 (키는 반드시 한번만 생성해야 함)
C:\Users\wsol\project\app2>keytool -genkey -v -keystore release.keystore -alias app2behappyonekr -keyalg RSA -keysize 2048 -validity 100000 키 저장소 비밀번호 입력: 새 비밀번호 다시 입력: 이름과 성을 입력하십시오. [Unknown]: test 조직 단위 이름을 입력하십시오. [Unknown]: test 조직 이름을 입력하십시오. [Unknown]: test 구/군/시 이름을 입력하십시오? [Unknown]: Seoul 시/도 이름을 입력하십시오. [Unknown]: Seoul 이 조직의 두 자리 국가 코드를 입력하십시오. [Unknown]: ko CN=test, OU=test, O=test, L=Seoul, ST=Seoul, C=ko이(가) 맞습니까? [아니오]:
다음에 대해 유효 기간이 100,000일인 2,048비트 RSA 키 쌍 및 자체 서명된 인증서(SH A256withRSA)를 생성하는 중 : CN=test, OU=test, O=test, L=Seoul, ST=Seoul, C=ko <app2behappyonekr>에 대한 키 비밀번호를 입력하십시오. (키 저장소 비밀번호와 동일한 경우 Enter 키를 누름): [release.keystore을(를) 저장하는 중]


- android-release-unsigned.apk 파일 app2 폴더에 복사 후 파일명 변경 : app2behappyonekr.apk


- 서명
   C:\Users\wsol\project\app2>jarsigner -tsa http://timestamp.digicert.com -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore release.keystore app2behappyonekr.apk app2behappyonekr

   Enter Passphrase for keystore:
   updating: META-INF/MANIFEST.MF
   adding: META-INF/APP2BEHA.SF
   ...
   signing: res/xml/config.xml
   signing: resources.arsc
   jar signed.


- 압축 및 정렬
C:\Users\wsol\project\app2>zipalign -v 4 app2behappyonekr.apk app2behappyonekr_final.apk

   Verifying alignment of app2behappyonekr_final.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
   ...
   6868335 res/xml/config.xml (OK - compressed)
   6871072 resources.arsc (OK)
   Verification succesful


* Test : app2behappyonekr_final.apk

* Deployment : app2behappyonekr_final.apk

댓글 없음:

댓글 쓰기