Expo가 아닌 React Native에서 빌드하는 방법을 작성하려고 한다.
Window 환경에서 진행하며 iOS는 유감이지만 진행하지 않고 Android 만 진행할 계획이다.
서명 키 생성
빌드를 하기 위해서는 서명키가 필요하다고 한다.
현재 개발 환경에서 android / app 폴더로 이동해서 명령어를 통해 서명키를 발급받는다.
keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Enter 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]:
Is CN=*****, OU=Unknown, O=Unknown, L=*****, ST=*****, C=***** correct?
[no]:
서명 키 생성 명령어를 실행하면 아래와 같이 입력하라는 것이 나오는데
순서대로 [ 이름 ] [ 소속 팀 ] [ 소속 ] [ 지역 ] [ 거주지의 주 / 도 ] [ 국가코드 ] 를 입력하면 된다.
국가 코드는 한국의 경우 " KR " 을 입력하면 된다.
이렇게하면 android / app 폴더에 [ my-upload-key.keystore ] 파일이 생성된다.
서명 키 설정
해당 서명키를 어플에 설정해주는 작업이 필요하다.
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
android / gradle.properties 파일에 해당 코드를 추가해주면 된다.
여기서 STORE_PASSWORD 와 KEY_PASSWORD라는 생소한 것이 나오는데
keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
명령어를 그대로 사용하면 처음 입력한 비밀번호가 동일하게 STORE_PASSWORD 와 KEY_PASSWORD로 설정된다.
만약 따로 설정하고 싶다면 " -keypass " 옵션을 통해서 각각 설정해줄 수 있다.
그후 android / app / build.gradle 파일을 열어서 수정해준다.
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
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 폴더로 들어가서 명령어를 실행시켜준다.
cd android
./gradlew bundleRelease
명령어가 끝나면 android / app / build / outputs / bundle / release 경로에 release.aab 파일이 만들어진다.
'React Native > 공통' 카테고리의 다른 글
iOS 실시간 위치 정보 가져오기 - 확장판 (1) | 2024.12.21 |
---|---|
react native flex:1 의 오류 (1) | 2024.11.16 |
iOS 실시간 위치 정보 가지고 오기 (1) | 2024.08.24 |
React Native 파이어베이스 배포하기 (1) | 2024.08.10 |
[React Native] 첫 프로젝트 (2) | 2022.07.17 |