본문 바로가기
프로그래밍/React Native

[React Native] CodePush 설정 시, 추가해야 될 부분 정리

by CaffeLatte 2022. 9. 20.

react: 17.0.2
react-native: 0.65.1
react-native-code-push: 7.0.5

 

GitHub - microsoft/react-native-code-push: React Native module for CodePush

React Native module for CodePush. Contribute to microsoft/react-native-code-push development by creating an account on GitHub.

github.com

해당 라이브러리를 사용하여 구현하던 중 문서에서 부족한 부분을 정리해 본다

 

 

Multi-Deployment Testing을 적용하던 중...

Android의 경우(터미널과 에뮬레이터를 사용),

 

GitHub - microsoft/react-native-code-push: React Native module for CodePush

React Native module for CodePush. Contribute to microsoft/react-native-code-push development by creating an account on GitHub.

github.com

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] CodePush Test 방법

CodePush 설정을 다했다고 가정. Android와 iOS 모두 가상기기에 설치를 했다면 codepush를 해보자 React Native Project에서 간단하게 Text만 변경해놓고 appcenter codepush release-react -a / -d 추가적인 옵..

success206.tistory.com

 

 

 

끝.

댓글