Build Flavor 설정
프로덕션 빌드와 개발용 빌드를 분리할 수 있다.
build.gradle
에 flavor를 작성한다.
resValue
로 앱 이름을 설정할 경우 android/app/src/main/res/values/strings.xml
파일을 삭제한다.
package.json
에 scripts를 수정한다.
--variant=${flavor}${buildType}
flavor와 buildType의 조합별로 빌드할 수 있다.
"android:devDebug": "react-native run-android --variant=devDebug",
"android:prodDebug": "react-native run-android --variant=prodDebug",
...
"build:android:release": "cd android && ./gradlew bundleProdRelease"
- MainActivity not found 에러가 뜬다면 실행 시
appId
를 넘겨준다.
"android:devDebug": "react-native run-android --variant=devDebug --appId com.hocancenowapp.dev",
파이어베이스를 사용해서 google.services.json
파일이 있는 경우 package_name
을 추가해서 파일을 수정해준다.
이렇게 한 기기에서 flavor별로 앱을 빌드할 수 있다.
RN에서 Build Flavor 설정 가져오기
아래 파일 및 코드 작성
React Native에서 아래와 같이 부를 수 있다.
App Center 연결
앱센터 에서 앱을 추가한다.
- App Center Analytics와 Crashes를 사용하려면 App center SDK를 설치한다.(나는 설치하지 않았다.)
자동으로 빌드가 돌 수 있게끔 Build에 Repo를 연결한다.
Build configruation
에서 브랜치 별로 Build Variant를 설정해준다.
예를 들면
- main : prodRelease
- dev : devRelease
Sign builds에 keystore와 환경변수를 저장한다.
app/build.gradle
에서 buildTypes에 release일 시 appcenter의 signingConfig를 사용하도록 코드를 수정해준다.
release {
if (!System.getProperty("APPCENTER_KEY_ALIAS")){
signingConfig signingConfigs.release
}
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
Distribute에서 Google Play Console에 연결해준다.
앱센터에서 빌드된 앱은 구글 플레이 콘솔의 앱 번들로 배포할 수 있다.
refer