4

我试图根据反应本机代码的推文档Codepush阵营Android本地staging-任务installReleaseStagingDebug根项目未发现

我的build.gradle文件中有这样的this section配置我的RN的Android项目配置:

buildTypes { 
     debug { 
     } 
     releaseStaging { 
      buildConfigField "String", "CODEPUSH_KEY", CODEPUSH_KEY_STAGING 
     } 
     release { 
      buildConfigField "String", "CODEPUSH_KEY", CODEPUSH_KEY_PRODUCTION 
      minifyEnabled enableProguardInReleaseBuilds 
      proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 
      signingConfig signingConfigs.release 
     } 
    } 

但是当我运行:react-native run-android --variant releaseStaging

我得到的错误:Task 'installReleaseStagingDebug' not found in root project 'MyAppName'.

还试图运行react-native run-android --configuration releaseStaging

这给了我一个稍微好一点的错误:

Task 'installReleaseStaging' not found in root project 'MyAppName'. Some candidates are: 'uninstallReleaseStaging'. 

任何想法,我缺少的是什么?
谢谢!
Uri

回答

6

您必须将signingConfig添加到releaseStaging中。

releaseStaging { 
     signingConfig signingConfigs.release 
     buildConfigField "String", "CODEPUSH_KEY", CODEPUSH_KEY_STAGING 
    } 

然后,您可以将它安装到您的设备。我有反应本机版本0.38,所以我安装它与react-native run-android --variant=releaseStaging,但这可能是不同的其他反应原生版本。如果您有更新版本的react-native,则可以改为使用react-native run-android --configuration=releaseStaging

0

Android的摇篮插件允许你定义自定义的配置设置为每“建设型”(例如调试,释放)

要这样设置, 修改的Android /应用/的build.gradle标准阵营的本机项目

android { 
... 
buildTypes { 
    debug { 
     ... 
     // Note: CodePush updates should not be tested in Debug mode as they are overriden by the RN packager. However, because CodePush checks for updates in all modes, we must supply a key. 
     buildConfigField "String", "CODEPUSH_KEY", '""' 
     ... 
    } 

    releaseStaging { 
     ... 
     buildConfigField "String", "CODEPUSH_KEY", '"<INSERT_STAGING_KEY>"' 
     signingConfig signingConfigs.release 
     ... 
    } 

    release { 
     ... 
     buildConfigField "String", "CODEPUSH_KEY", '"<INSERT_PRODUCTION_KEY>"' 
     signingConfig signingConfigs.release 
     ... 
    } 
} 
... 

}

注: CodePush更新不应该在调试模式下进行测试,因为它们是由RN打包覆盖。但是,由于CodePush在所有模式下检查更新,我们必须提供密钥。

buildConfigField "String", "CODEPUSH_KEY", '""'

对于最新的反应母语;你可以用

`react-native run-android --variant releaseStaging`