2016-01-23 61 views
1

我试图发布React-Native Android应用程序,使用微软的Codepush进行升级,因为它遵循网站上的给定指令,并且能够在升级时成功地创建包文件并成功发布,请参阅我发布的移动设备上的更新更改。Codepush React-Native android staging版本

首先,我使用USB(在设备上运行)将应用程序安装在移动设备上。

之后,使用Codepush对应用程序和发行版进行一些更改,但是当我在移动设备上重新启动应用程序时未显示更改。

https://github.com/Microsoft/react-native-code-push#getting-started Android设定

应用程序/的build.gradle: -

defaultConfig : versionName: "1.0.0", 

signingConfigs : release { storeFile file("my-release-key.keystore") 
      storePassword "myapp" 
      keyAlias "alias-key" 
      keyPassword "myapp" 
     } 

buildTypes: signingConfig signingConfigs.release 

dependencies: compile project(':react-native-code-push') 

setting.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') 

CLI命令: -

react-native bundle --platform android --entry-file index.android.js --bundle-output codepush.js --dev false; 

code-push release App-Android codepush.js 1.0.0 

我已经使用versionName 1.0.0在移动设备上安装了aap,并在应用程序代码中进行了一些更改,然后再次构建捆绑包并释放版本名称为1.0.1的应用程序。

在这里我不是在buid.gradle改变只的versionName改变中的versionName发布命令code-push release App-Android codepush.js 1.0.1

我是否需要每一次改变中的versionName build.gradle的新版本,并使用相同的释放指令?

任何人都可以帮忙吗? 谢谢

+0

你能指定的CLI命令你用来建立自己的JS包,然后将其释放到CodePush?这将有助于确定可能发生的事情。此外,请确保您传递给“代码推送发布”命令的二进制版本与您的RN Android应用程序的build.gradle文件中指定的版本完全相同。未通过正确的版本号是从正在运行的应用程序未发现更新的常见原因。 –

+0

@JonathanCarter请查看我已经在问题中指定的命令:感谢 –

+0

如下提及的答案,你并不需要更改为“1.0.1”当你调用“代码按压释放”除非你改变版本的版本在build.gradle文件中设置为1.0.1。在上面的示例中,只需将1.0.0传递给“代码推送发布”,一切都将按预期工作。 –

回答

0

不知道你用来捆绑你的JS然后发布到CodePush的确切的CLI命令,很难确切地知道会发生什么,但有几种可能性,你应该仔细检查你的'正在做正确:

  1. 当你调用CodePush CLI的发布命令,确保你传递一个路径JS包文件作为更新的内容。 Android目前不支持更新图像,因此它不支持给出文件目录。如果尝试释放一个目录,CLI和服务器将允许它,但应用程序中的插件在与服务器同步时将无法安装新的更新,因为它不理解内容。这是一个暂时的限制,将在即将发布的插件中解决。

  2. 当您调用CodePush CLI的release命令时,请确保您指定了更新应该指向的应用程序的确切二进制版本。对于Android,这是build.gradle文件中的android.defaultConfig.versionName属性。如果你正在一个全新的项目上测试CodePush,这可能是“1.0.0”,所以只要确保你将这个确切的版本传递给release命令。否则,当插件尝试与服务器同步时,它会认为该发行版不会定位它,并且不会尝试安装它。

  3. 确保您在MainActivity文件中指定的部署密钥实际上对应于York登台部署。您可以通过运行“代码推送部署ls”并将代码中的密钥与暂存部署的密钥进行比较来确认。

你可以找到关于发布命令的详细信息,以及每个参数的行为,被检查出的CLI文档:http://microsoft.github.io/code-push/docs/cli.html

如果没有那些最终会被你的问题,这将是如果您可以分享正在运行的发布更新的确切步骤,以及查看Chrome控制台(或logcat)并告诉我们您正在查看的日志记录,这会对您有所帮助。 CodePush插件会在配置/ etc中报告错误。帮助你诊断它们。

+0

上述问题的步骤是罚款codepush配置只需要照顾的时候,我们在MainActivity.java类正在发生变化。 –

2

我有错误,如你。

  • 检查您捆绑文件
  • (代号按压释放YouApp your_bundle_file版)

    如果您在android.defaultConfig.versionName集检查release命令是1.0.20,所以你需要释放这样的:

    代码推送发布YouApp your_bundle_file 1.0.20

您需要发布版本在1.0.20之前,直到您更改android.defaultConfig.versionName版本(1.0.21),之后您需要发布版本1.0.21。

注意:发布命令中的version只有在您的应用程序android.defaultConfig.versionName更改后才能更改。