https://play.google.com/console/u/0/signup
$25 개발자 계정을 만들었다.
keystore는 분실 시 보안상 문제가 생길 수 있기 때문에 잘 보관하여 문제가 생기지 않도록 하는 것이 중요
keystore는 github에 올라가서도 안됨 (.gitignore)
.\android\app 에서 다음 명령어를 실행
$ keytool -genkey -v -keystore ${KEY_STORE_FILE_NAME}.keystore -alias ${ALIAS_NAME} -keyalg RSA -keysize 2048 -validity 10000
+) validity: 유효기간 (유효기간이 지나면 더 이상 해당 앱은 업데이트할 수 없음)
실행 후, keystore 비밀번호와 정보들을 입력한 후 y를 눌러주면 ${KEY_STORE_FILE_NAME}.keystore 파일이 생성된다.
'keytool' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다.
→ 환경변수에서 jdk 설정 필요
On Windows keytool must be run from C:\ProgramFiles\Java\jdkx.x.x_x\bin, as administrator.
MYAPP_UPLOAD_STORE_FILE=${KEY_STORE_FILE_NAME}.keystore
MYAPP_UPLOAD_KEY_ALIAS=${ALIAS_NAME}
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
다음 내용으로 파일을 수정해준다.
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
/android에서 다음 명령어 실행
$ npx react-native build-android --mode=release
Unrecognized command "build-android". Did you mean "run-android"?
react-native versions < 0.72에서는 아래의 명령어를 사용해야 한다고 한다.
$ .\gradlew clean
$ .\gradlew bundleRelease
\android\app\outputs\bundle\release\app-release.aab 파일이 생성되었다!