2017. 5. 18. 22:28ㆍ개발/React-Native
React-Native 에서 Android Signed APK 만드는 방법
1. keytool를 사용하여 key를 생성
--> Windows 환경이라면 C:\Program Files\Java\jdkx.x.x_x\bin 해당 경로에서 명령어를 입력해야한다.
1 | $ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 | cs |
--> MAC 환경이라면 적당한 위치에서 위 명령어를 입력해주면 key파일이 생성된다.
명령어를 통해 유효기간이 10000일 짜리인 my-release-key.keystore 파일이 생성된다.
2. 생성된 my-release-key.keystore 파일을 android/app 경로내에 넣어준다.
3. ~/.gradle/gradle.properties 를 다음과 같이 추가한다.
1 2 3 4 | MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=***** MYAPP_RELEASE_KEY_PASSWORD=***** | cs |
***** 자리에 본인이 원하는 비밀번호를 입력한다.
4. android/app/build.gradle 를 다음과 같이 수정한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ... android { ... defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { ... signingConfig signingConfigs.release } } } ... | cs |
--> 파란색 글씨부분만 추가해주면 된다.
5. 프로젝트 경로에서 다음 명령어를 입력한다.
1 2 3 | react-native bundle --platform android --dev false --entry-file index.android.js \ --bundle-output android/app/src/main/assets/index.android.bundle \ --assets-dest android/app/src/main/res/ | cs |
--> 개발자 모드를 꺼주지 않으면 React-Native App에서 기기를 흔들었을 때 개발자 메뉴가 나타나게 된다.
--> 명령어를 입력하면 assets 폴더가 없다는 오류 메세지가 나오게 된다.
--> 명령어를 입력하기 전에 android/app/src/main 경로내에 assets 이름의 폴더를 미리 생성해주면 된다.
6. release apk 를 생성 명령어를 입력한다.
1 | cd android && ./gradlew assembleRelease | cs |
7. apk 경로에 들어가서 생성된 apk를 확인한다.
경로 --> 프로젝트폴더/android/app/build/outputs/apk/app-release.apk
만약 해당 경로에 app-release-unsigned.apk 이름의 파일밖에 없다면 apk에 서명파일이 제대로 등록되지 않은 것이다.
출처 : Stack Overflow
'개발 > React-Native' 카테고리의 다른 글
[React-Native] 하이브리드 앱에 jar 파일 추가하는 방법 (0) | 2017.09.12 |
---|---|
[React-Native] Modal 구현 (0) | 2017.08.30 |
[React-Native] Android Emulator 사용시 추천 방법 (0) | 2017.08.26 |
[React-Native] remove listener (0) | 2017.05.25 |