我的应用与“暂存”部署密钥“ sss ”相关联。它定义在/android/app/src/main/res/values/strings.xml
,reactNativeCodePush_androidDeploymentKey
下。
现在,当我实际发布APK时,我想使用“生产”部署密钥“ ppp ”。
最好的方法是什么?我如何自动化它,所以它知道它应该使用'ppp'键?我使用./gradlew assembleRelease
命令构建APK。
答案 0 :(得分:3)
执行此操作的标准方法是使用构建类型资源覆盖。
如果您的构建类型为debug
和release
,则会在/android/app/src/release/res/values/strings.xml
处放置一个strings.xml文件,其中只有一个键reactNativeCodePush_androidDeploymentKey
的值为ppp
另一种可能的方法是,如果你不想将你的prod密钥提交到你的repo,那就是将它放在一个环境变量中。
您的Gradle文件必须读取env var:
def codePushKey = System.getenv("CODEPUSH_KEY") ?: "sss"
动态地将env var添加到BuildConfig
buildTypes {
release {
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
buildConfigField "String", "CODEPUSH_KEY", codePushKey
}
使用BuildConfig var而不是字符串资源替换CodePush实例。
在ReactNativeHost
实现中,在getPackages()
覆盖中,将CodePush实例化更新为:
new CodePush(BuildConfig.CODEPUSH_KEY, getApplicationContext(), BuildConfig.DEBUG)