[React Native] Android 앱 배포 - 1 : AAB 파일 생성

한별·2024년 2월 3일

React Native

목록 보기
5/5

1. 구글 개발자 등록

https://play.google.com/console/u/0/signup
$25 개발자 계정을 만들었다.


2. keystore 발급 및 관리

keystore는 분실 시 보안상 문제가 생길 수 있기 때문에 잘 보관하여 문제가 생기지 않도록 하는 것이 중요
keystore는 github에 올라가서도 안됨 (.gitignore)

keystore 생성 방법

.\android\app 에서 다음 명령어를 실행

$ keytool -genkey -v -keystore ${KEY_STORE_FILE_NAME}.keystore -alias ${ALIAS_NAME} -keyalg RSA -keysize 2048 -validity 10000
  • KEY STORE FILE NAME: keystore 파일명
  • ALIAS NAME: 앱을 keystore file로 서명할 때 사용할 이름

+) 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.


3. android/gradle.properties 수정

MYAPP_UPLOAD_STORE_FILE=${KEY_STORE_FILE_NAME}.keystore
MYAPP_UPLOAD_KEY_ALIAS=${ALIAS_NAME}
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****

4. android/app/build.gradle 수정

다음 내용으로 파일을 수정해준다.

...
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
        }
    }
}
...

5. Generating the release AAB

/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 파일이 생성되었다!


참고 자료

Publishing to Google Play Store (React Native)

profile
글 잘 쓰고 싶어요

0개의 댓글