【问题标题】:How to handle potential race conditions between codepush and Google playstore / Apple appstore如何处理 codepush 和 Google Play 商店/Apple 应用商店之间的潜在竞争条件
【发布时间】:2018-09-26 03:24:36
【问题描述】:

我刚刚构建了我的第一个 React Native 应用程序,我对能够通过 codepush 发送 OTA 更新感到非常兴奋。但是,当我进行更改时,发布过程是什么样的。 想象一下会发生以下情况:

v1 -> released to playstore
v2 -> bugfix: released via codepush
v3 -> native changes: released to playstore

从 google playstore 下载 v3 的用户,打开应用后,他会从 codepush 获得 v2 吗?我无法将 v3 推送到 codepush,因为它具有可能会中断的本机更改。

奇怪的是,没有任何 codepush 文章/文档涵盖这种潜在的竞争条件?

【问题讨论】:

    标签: react-native code-push react-native-code-push


    【解决方案1】:

    你可以从codepush文档here看到下面的文字

    目标二进制版本参数

    这指定了您的应用程序的存储/二进制版本 发布更新,以便只有运行该版本的用户才会 接收更新,而用户运行较旧和/或较新版本 应用程序二进制文件不会。这对以下有用 原因:

    1) 如果用户运行的是较旧的二进制版本,则可能 CodePush 更新中的重大更改不会 与他们正在运行的内容兼容。

    2) 如果用户正在运行更新的 二进制版本,然后假定它们正在运行的是更新的 (并且可能不兼容)与 CodePush 更新。如果你不 在发布命令中指定 targetBinaryVersion,它取自 build.gradle (or) 如果指定目标版本,当前 release 将被映射到它。

    假设您有一个将通过 Play 商店发送给用户的新版本,则推断版本代码和内部版本号将更新,并且较早的代码推送版本将不再指向此版本。

    所以来回答你的问题。

    从 google playstore 下载 v3 的用户,打开应用后,他会从 codepush 获得 v2 吗?

    不,他们不会得到它,因为代码推送版本将映射到早期的二进制版本

    我无法将 v3 推送到 codepush,因为它的原生更改可能会中断。

    您可以对市场上已经存在的 v3 进行更改

    【讨论】:

    • 感谢@Karthik Pala,这正是我所需要的。会试一试
    • 接受。是的,指定目标二进制版本有效!
    • 现在遇到了不同的问题。任何想法:stackoverflow.com/questions/52685589/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2014-11-01
    相关资源
    最近更新 更多