APK 파일 생성 방법 - 안드로이드
android/app/build.gradle
수정하기
enableSeparateBuildPerCPUArchitecture
def enableSeparateBuildPerCPUArchitecture = true
- 이 설정은 universal apk 파일 생성이 아닌, CPU 특화된 apk 파일을 생성하기 위해
true
로 설정해준다. - apk 파일을 여러개 생성하는 대신 각 안드로이드 CPU 에 최적화된 apk 파일을 생성할 수 있다.
- 이 설정은 universal apk 파일 생성이 아닌, CPU 특화된 apk 파일을 생성하기 위해
enableProguardInReleaseBuilds
def enableProguardInReleaseBuilds = true
- proguard 를 사용할지 선택하는 것이다.
- 자바 바이트 코드를 줄여준다.
- 단, 자바 바이트코드를 줄이는 과정에서 프로그램 실행이 잘 안되는 경우가 있는데, 이 경우에는
proguard-rules.pro
파일에 설정을 추가하여 해결할 수 있다.
- 단, 자바 바이트코드를 줄이는 과정에서 프로그램 실행이 잘 안되는 경우가 있는데, 이 경우에는
signingConfigs
내용 추가
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
// 이 부분을 추가
release {
if (project.hasProperty('RELEASE_STORE_FILE')) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
- 키 생성 명령어:
keytool -genkey -v -keystore fooddeliveryapp.keystore -alias fooddeliveryappkey -keyalg RSA -keysize 2048 -validity 10000
Lint Error 관련 설정 추가하기
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
// 이 부분을 추가
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
- 코드 스타일 때문에 빌드가 중지되는 것을 막아준다.
android/gradle.properties
파일 수정하기
RELEASE_STORE_FILE=fooddeliveryapp.keystore
RELEASE_KEY_ALIAS=fooddeliveryappkey
RELEASE_STORE_PASSWORD=123123
RELEASE_KEY_PASSWORD=123123
- 이전에 키를 생성할 때 입력했던 것들을 입력하면 된다.
- 이 부분은 이전
build.gradle
에서RELEASE_STORE_FILE
과 같은 값을 불러올 때 사용된다.
package.json
에 스크립트 추가하기
"apk:android": "npm ci && cd android && ./gradlew assembleRelease && cd .. && open android/app/build/outputs/apk/release"
npm run apk:android
명령어를 통해.apk
파일을 생성할 수 있다.
반응형
'리액트 네이티브 (React Native)' 카테고리의 다른 글
리액트 네이티브 푸시 알람 보내는 방법 (0) | 2022.11.19 |
---|---|
리액트 네이티브 초기 프로젝트 생성 방법 (feat. Expo vs React Native CLI ) (0) | 2022.11.09 |
리액트 네이티브, 헤르메스(Hermes) 란? (0) | 2022.11.07 |
리액트 네이티브 코드 푸시(Code Push) 란, 그리고 코드 푸시 설정법 (2) | 2022.11.07 |
리액트 네이티브 앱 내 실제 기기에서 실행하기 (0) | 2022.10.27 |