React Native/React Native_etc

[React Native - android] Google Play Store 출시를 위한 keystore 생성 및 등록

bocoder
728x90
반응형

개발 완료 후 Google Play Store 출시를 위해, release용 인증서를 생성하고 확인함

 

1. /android/app 위치에서 아래 커맨드 실행

# location : [project]/android/app
$ keytool -genkeypair -v -storetype PKCS12 -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

 

2. 아래 질문들에 답한 후, 마지막에 'y' 입력

 

3. 아래와 같이 [project]/android/app 위치에 my-upload-key.keystore 가 생성됨

 

4. gradle.properties 파일에 코드를 추가

 

# [project]/android/gradle.properties

MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****     # 인증서 생성 시 등록했던 비밀번호 입력
MYAPP_UPLOAD_KEY_PASSWORD=*****       # 인증서 생성 시 등록했던 비밀번호 입력

 

5. build.gradle 파일에 debug 만 설정되어 있는데 release 도 추가

 

# [project]/android/app/build.gradle

...
android {
    ...
    signingConfigs {
        debug { ... }
        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     // 변경: .debug --> .release
        }
    }
}
...

 

6. 아래 커맨드를 실행하면 기존에 debug 용으로 사용했던 인증서 지문 및 release 용으로 등록한 인증서 지문을 확인 가능함

# location : [project]/android
$ ./gradlew signingReport

* reference : https://reactnative.dev/docs/signed-apk-android

 

7. 빌드 시 release 로 변경

 - 변경하지 않을 시, 스토어에 업로드 할 때 '디버그 모드로 서명한 APK 또는 Android App Bundle을 업로드했습니다.' 경고가 발생함

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
        		...
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release  // .release 로 변경
        }
    }
}
...

 

7. Google Play Store 등록을 위한, App Bundle 생성

# location : [project]/android
$ ./gradlew bundleRelease

 - android/app/build/outputs/bundle/release 위치에 파일이 생성됨

728x90
반응형