1. keystore 생성
터미널을 켜고 프로젝트 폴더에서 아래를 실행해준다.
여기서 your_key_name 과 your_key_alias 에 원하는 이름을 작성해준다.
your_key_alias 이름은 기억해두자!
keytool -genkey -v -keystore your_key_name.keystore -alias your_key_alias -keyalg RSA -keysize 2048 -validity 10000
위 명령어를 실행하면 비밀번호를 포함해서 여러 질문들이 나온다. 입력해주자. 비밀번호를 제외하고는 그냥 엔터치면 unknown 으로 입력되고 넘어간다. 필수사항은 아니니 그냥 엔터치고 넘어가도 된다.
Enter your keystore password:
Re-enter new password:
What is your first and last name? [unknown]: // 개발자 이름
What is the name of your organizational unit? [unknown]: // 회사 개발팀
What is the name of your organization? [unknown]: // 회사이름
What is the name of your city or Locality? [unknown]: // 대한민국
What is the name of your State or Province? [unknown]:// 지역
What is the two-letter country code for this unit? [unknown]: // 국가코드 알파벳 KR
전부 다 입력 후 마지막으로 비밀번호를 재확인하는데 입력하면 프로젝트 폴더에 your_key_name.keystore 파일이 생성된다.
혹시 플레이 스토어에 출시했다면 릴리즈 키스토어는 꼭 백업해둡시다.
플레이스토어 해당 키스토어로 한 번 출시하면 이후 새로운 버전을 올릴 때도 반드시 해당 키스토어로 빌드해서 올려야한다.
예전에 실수로 지워진 적이 있어 구글에 연락하고, 추가 자료를 보내서 겨우 바꿨던 기억이 있다. 번거롭고 싶지 않다면 출시 후에는 꼭 백업!
2. android > app 폴더로 keystroe 파일 이동
헷갈리면 debug.keystore 파일이랑 같은 곳에 놓으면 됩니다.
3. Gradle 설정
a. android > gradle.properties 에 다음 코드를 추가해줍시다.
MYAPP_UPLOAD_STORE_FILE=your_key_name.keystore
MYAPP_UPLOAD_KEY_ALIAS=your_key_alias
MYAPP_UPLOAD_STORE_PASSWORD=비밀번호
MYAPP_UPLOAD_KEY_PASSWORD=비밀번호
b. android > app > build.gradle 에 가서 다음과 같이 코드를 추가해줍니다.
1) signingConfigs 에 debug 부분 밖에 없는데, release 부분을 추가해줍니다.
2) 바로 아래 buildTypes의 release에 signingConfig signingConfigs.release
signingConfigs {
debug {
...
}
// 1) 여기부터
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 {
debug {
...
}
release {
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
// 2) release 추가!
signingConfig signingConfigs.release
}
}
4. APK & AAB 생성
저는 출시할 때는 AAB로 하고, 디바이스 테스트 할 때는 APK 로 합니다.
cd android
./gradlew bundleRelease // AAB 생성
./gradlew assembleRelease // APK 생성
※ 빌드 시 오류나는 경우
1. JVM heap 오류
빌드 시 메모리가 부족해서 나는 경우.
android > gradle.properties 에 다음 줄을 하나 추가해주자
org.gradle.jvmargs=-Xmx4096M
2. multiExtDexDebug 오류
a. android > build.gradle에 다음 부분을 추가해주자
defaultConfig {
...
// 1) 추가!
multiDexEnabled true
}
...
dependencies {
...
// 2) 추가!
implementation 'androidx.multidex:multidex:2.0.1'
}
b. android > app > src > main > java > ... > MainApplication.java
먼저 import를 해주고 아래 ReactApplication 클래스 부분을 다음과 같이 변경해준다.
import androidx.multidex.MultiDexApplication;
public class MainApplication extends MultiDexApplication implements ReactApplication {
...
}
'REACT NATIVE' 카테고리의 다른 글
[REACT NATIVE] react navigation 정리 (0) | 2021.11.12 |
---|---|
[REACT NATIVE] 다크모드 disable (0) | 2021.11.11 |