【问题标题】:Codepush React-Native android staging releaseCodepush React-Native android 暂存版本
【发布时间】:2016-01-23 11:17:31
【问题描述】:

我正在尝试使用 Microsoft 的 Codepush 在暂存时发布 React-Native Android 应用程序,因为它遵循了网站上的给定说明,并且能够构建捆绑文件并在暂存时成功发布,但在移动设备上没有看到更新的更改我发布了。

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

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

https://github.com/Microsoft/react-native-code-push#getting-started 安卓设置

app/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

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

这里我不更改buid.gradle 中的版本名称,仅更改发布命令code-push release App-Android codepush.js 1.0.1 中的版本名称

我是否需要每次在 build.gradle 中更改 versionName 以获得新版本并在发布命令中使用相同的版本?

有人可以帮忙吗? 谢谢

【问题讨论】:

  • 能否指定用于构建 JS 包然后将其发布到 CodePush 的 CLI 命令?这将有助于确定可能发生的情况。此外,请确保您传递给“code-push release”命令的二进制版本与您的 RN Android 应用程序的 build.gradle 文件中指定的版本完全相同。未传递正确的版本号是无法从正在运行的应用程序中发现更新的常见原因。
  • @JonathanCarter 请查看我已指定相关命令:谢谢
  • 正如下面的答案所提到的,除非您将 build.gradle 文件中的版本更改为1.0.1。在上面的示例中,只需将 1.0.0 传递给“代码推送发布”,一切都会按预期工作。
  • @JonathanCarter 请指定将更改反映给用户需要多长时间。
  • 当您通过 CodePush CLI 发布更新时,它会立即可用。但是应用程序仍然需要调用 sync/checkForUpdate 来发现它,因此一旦应用程序与服务器同步,您的用户就可以使用它。

标签: javascript android react-native


【解决方案1】:

我和你一样犯了错误。

  • 检查你的捆绑文件

  • 检查发布命令(code-push 发布 YouApp your_bundle_file 版本)

    如果您在android.defaultConfig.versionName 中设置为 1.0.20,那么您需要像这样发布:

    代码推送发布 YouApp your_bundle_file 1.0.20

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

注意:在您的应用程序android.defaultConfig.versionName 更改之前,发布命令中的version 不能更改。

【讨论】:

  • “检查你的捆绑文件”是什么意思?介意提供更多细节吗?
【解决方案2】:

如果不知道用于捆绑 JS 然后将其发布到 CodePush 的确切 CLI 命令,很难确切知道可能发生的情况,但有两种可能性,您应该仔细检查您是否正确执行:

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

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

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

您可以通过查看 CLI 文档了解有关 release 命令以及每个参数的行为的更多详细信息:http://microsoft.github.io/code-push/docs/cli.html

如果这些都不是您的问题,如果您可以分享您为发布更新而运行的确切步骤,以及查看 Chrome 控制台(或 logcat)并让我们知道你看到了什么日志。 CodePush 插件将报告配置/等中的错误。帮助您诊断它们。

【讨论】:

  • 上述问题步骤对codepush配置没问题,只需要在我们在MainActivity.java类中更改时注意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多