react: 17.0.2
react-native: 0.65.1
react-native-code-push: 7.0.5
해당 라이브러리를 사용하여 구현하던 중 문서에서 부족한 부분을 정리해 본다
Multi-Deployment Testing을 적용하던 중...
Android의 경우(터미널과 에뮬레이터를 사용),
buildTypes > releaseStaging을 추가하는데 문서에 나온대로 하면 실행이 되지 않는다
뭐지;
문서를 자세히보니 상단에 demo가 있다.
확인해 본 후,
추가로 release에 있는 signingConfig, minifyEnabled, proguardFiles도 같이 넣어주었다
releaseStaging {
...
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
그리고 다시 실행(아래 명령어는 React Native 홈페이지에서 참고)
yarn react-native run-android --variant=releaseStaging
build 폴더 안에 .apk파일이 생성되면서 설치가 되지만 실행 시 crash가 발생한다
뭐지2;
app crash 관련 에러를 검색해보니
enableHermes 관련 내용이 있었고
마침 내 프로젝트에도 있는 것이 아닌가?
추가해 보았다
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseStagingImplementation files(hermesPath + "hermes-release.aar") // Add this line
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
stack overflow의 답변은 "hermes-debug.arr"이었지만 release가 맞는 게 아닌가 싶어서 release로 변경했다
그리고 다시 실행
오오, release를 실행했을 때처럼 잘 된다
(에러를 하나하나 잡아가는 재미가 있지만, 그냥 한방에 되면 더 좋겠다ㅠㅠ)
다음은 iOS...
iOS의 경우(터미널과 시뮬레이터를 사용)
아래 명령어 실행(React Native 홈페이지에서 참고)
yarn react-native run-ios --configuration Staging (--simulator \"iPhone X\")
뒤에 괄호는 특정 시뮬레이터 실행시 옵션으로 원하는 iPhone 이름을 써주면 된다
참고, CodePush Test 방법이 궁금하다면 아래 링크 클릭!
끝.
'프로그래밍 > React Native' 카테고리의 다른 글
[React Native] Keychain에 android.keystore 암호 저장하기 only for OS (0) | 2022.09.24 |
---|---|
[React Native] CodePush Test 방법 (0) | 2022.09.24 |
[React Native] iOS build commands failed (M1 mac) x86_64... (0) | 2022.09.08 |
[React Native] I get the warning "Non-serializable values were found in the navigation state" 에러 (0) | 2022.08.13 |
[React Native] Blur 효과 만들기 (0) | 2022.08.05 |
댓글