[React Native] Android 빌드
포스트
취소

[React Native] Android 빌드

Keystore 생성

1
2
cd android/app
keytool -genkey -v -keystore custom-key-name.keystore -alias custom-alias-name -keyalg RSA -keysize 2048 -validity 10000

React Native 프로젝트 폴더 안에 있는 android/app 폴더로 이동한 다음, keytools 명령어를 실행합니다.
keytools 명령어 부분의 custom-key-namecustom-alias-name을 취향에 맞게(?) 변경합니다.
그러면 사용자의 이름이 뭐고, 조직이 뭐고, 조직 이름이 뭐고 등등 여러가지 질문이 나올텐데 맞게 입력하면 마지막에 해당 답변들이 모두 맞는지를 다시 여쭤봅니다. 이 때 y를 입력하고 엔터를 누르면 keystore 파일이 android/app 폴더에 생성 됩니다.

Keystore 정보 기재

앱을 빌드할 때 해당 서명 파일에 대한 정보를 넘겨주기 위해 android/gradle.properties 파일에 Keystore에 대한 정보를 입력합니다.

1
2
3
4
MYAPP_RELEASE_STORE_FILE=custom-key-name.keystore
MYAPP_RELEASE_KEY_ALIAS=custom-alias-name
MYAPP_RELEASE_STORE_PASSWORD=password
MYAPP_RELEASE_KEY_PASSWORD=password

custom-key-namecustom-alias-name은 위에 Keystore 파일을 생성할 때 입력했던 것과 동일하게 설정해주시고, Release Store PasswordRelease Key Password는 Keystore 파일을 생성할 때 물어봤던 질문에 답변했던 비밀번호를 똑같이 입력합니다.

Keystore 실제 적용

android/app/build.gradle 파일을 열어 아래 내용을 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

android/app/build.gradle 파일을 열어보시면 이미 기존에 생성되어 있던 android Property가 있는데, 그 내부를 살펴보면 defaultConfig이라는 Property가 존재합니다.
해당 Property 바로 아랫줄에 위에 적힌 signingConfigs 객체를 추가합니다.

그 다음, androidProperty 내부를 살펴보면 buildTypes라는 Property가 이미 있을텐데, 그 내부에 release Property 안에 signingConfig signingConfigs.release 를 추가합니다.

빌드하기

1
2
cd android
./gradlew assembleRelease

위 명령어를 입력하면 빌드가 완료되고, android/app/build/output/apk/release 안에 .apk 파일이 생성됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

새로운 Javascript 생태계, Deno에 대해 핥아보자

[React Native] 물리적 Back 버튼으로 Webview 네비게이션 제어하기