React Native에서 Android Stage build을 만드는 데 필요한 설정

응용 프로그램을 만들 때 로컬에서 동작 확인을 하는 Debug 구축과 공식 환경으로서의 Release 구축 외에도 QA 등 내부에서 사용하는 Stage 구축이 필요하다.
반복적으로 대응하지만 가끔 깜빡하고 시간 낭비할 때가 있으니 메모를 적어두세요

app/build.gradle 수정


기본적으로 이 서류만 수정하면 된다.android에는 폴더 바로 아래의 build.gradleandroid/app 폴더 중의 build.gradle 두 가지가 있는데 후자는 다음과 같다.

Staging build 추가


buildType에 다음 staging 항목 추가
    buildTypes {
        debug {
          ...
        }

        release {
	  ....
        }

        staging {
            initWith release
            matchingFallbacks = ['release']
        }
    }

initWith release는release와 같은 설정을 사용하는 설정입니다.matchingFallbacks = ['release']는 외부에서 특정build의 설정을 필요로 할 때release의 설정을 사용하는 설정입니다.@react-native-async-storage/async-storage 등,react-native의 외부 포장은 debug과release 처리를 통한 설정이 있기 때문에matchingFallbacks에서 그곳의release 설정을 사용한다.
이렇게 하면 Staging build은 다음 명령을 통해 실행할 수 있습니다
./gradlew assembleStaging
그러나 구축된 프로그램을 시작해도 곧 붕괴될 수 있다.

hermes 경로 설정


만약 js engine에서hermes를 사용한다면, 구축마다 어떤hermes를 사용할지 지정해야 합니다
hermes 경로를 지정하는 곳에서staging의 설정은 다음과 같습니다.
    if (enableHermes) {
        def hermesPath = "../../../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
	 // staging build で hermes を使う為の設定
        stagingImplementation files(hermesPath + "hermes-release.aar")

    } else {
        implementation jscFlavor
    }
staging을 제외한 buildType을 추가할 때 foobarImplementation처럼 buildType 이름 다음에 임플리먼트를 추서합니다.
debug용hermes를 사용하려면hermes-debug,release용hermes를 사용하고,hermes-release를 지정하십시오

jsbundle 로고 만들기


react-native는metro bundler bundler를 사용하여 js 파일을 시작하고 프로그램을 통해 시작합니다.
기본적으로 debugbuild은 bundle 파일을 저장하지 않고 watch 모드에서metro bundler를 시작하여 직접 사용합니다
기본적으로 release build은 index입니다.android.구축할 때 버블을 만들고 사용할 수 있습니다.
기타 buildType의 경우 index입니다.android.bundle 제작 시 별도 설정 필요
build.gradle의 project.ext.react에 다음과 같은 설정을 추가합니다.
project.ext.react = [
    enableHermes: true,  // clean and rebuild if changing
    // staging build で index.android.bundle を作成する為の設定
    bundleInStaging: true,
]
Staging 이외의buildType을 추가한 경우bundleInFoobar처럼buildType 이름 앞에 bundleIn을 추기합니다.

총결산


이상의 설정을 진행하면 다음 명령으로 Stagingbuild을 만들어서 안전하게 프로그램을 시작합니다.
./gradlew assembleStaging
잡담이지만 이 정보는 모두react-native init 때app/build.gradle에 기재되어 있다.댓글 잘 읽어.

좋은 웹페이지 즐겨찾기