React Native Code Push 적용기(Android 설정)

모바일_코린이·2024년 7월 13일
0


이전글에서 Appcenter 관련하여 설정을 하였으며 오늘은 React Native에서 코드를 적용해 볼 예정입니다.

이글에서는 Android 관련한 설정을 알아보도록 하겠습니다.

1.패키지 설치

yarn add react-native-code-push

2.android폴더 안에 gradle.properties 파일에 다음과 같이 키를 입력해줍니다.

CODEPUSH_DEPLOYMENT_KEY_STAGING=<Staging key>
CODEPUSH_DEPLOYMENT_KEY_PRODUCTION=<production key>

그 다음, settings.gradle 파일을 열고 다음의 코드를 추가해줍니다.

include ':app', ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')

3.java 폴더 안에 있는 MainApplication.kt 파일에 다음 패키지를 import 합니다.

import com.microsoft.codepush.react.CodePush

4.reactNativeHost 함수 내부에 다음과 같이 추가를 합니다.


 override val reactNativeHost: ReactNativeHost =
      object : DefaultReactNativeHost(this) {
        override fun getPackages(): List<ReactPackage> =
            PackageList(this).packages.apply {
              // Packages that cannot be autolinked yet can be added manually here, for example:
              // add(MyReactNativePackage())
            }

        override fun getJSMainModuleName(): String = "index"

        override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG

        override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
        override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED

      + override fun getJSBundleFile(): String? {
      + return CodePush.getJSBundleFile()
      + }
      }

  • 표시 되어 있는 코드르 추가시켜 주시면 됩니다.

5.android/app/build.gradle로 들어가서 맨 마지막에 다음 코드를 추가시켜 줍니다.

apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"

그 다음 같은 파일 내에서 buildTypes 부분에서 다음과 같은 코드를 추가시켜 줍니다.

  buildTypes {
  		degug {
        ...
        resValue "string", "CodePushDeploymentKey", CODEPUSH_DEPLOYMENT_KEY_STAGING
        }
       release {
         ...
             resValue "string", "CodePushDeploymentKey", CODEPUSH_DEPLOYMENT_KEY_PRODUCTION
        }
    }
    
     staging {
      initWith release
      resValue "string", "CodePushDeploymentKey", CODEPUSH_DEPLOYMENT_KEY_STAGING
      matchingFallbacks = ['release']
   }

그리고 필자는 debug 모드에서는 statging키를 같이 사용합니다. 따로 debug용 키를 만드셔도 상관없습니다.
staging buildTypes 는 기존에는 없는 것이기 때문에 따로 추가해주셔야 합니다.

그 다음 같은 파일 내에 android 안 쪽에 defaultConfig 에 다음과 같은 코드를 추가해줍니다.

android {
   ...
    defaultConfig {
       ...
       "CODE_PUSH_APK_BUILD_TIME", String.format("\"%d\"", System.currentTimeMillis())
    }

이렇게 되면 안드로이드쪽 설정은 마무리되었습니다.

profile
안녕하세요 리액트 네이티브 개발자입니다.

0개의 댓글