首页 文章

如何处理codepush和Google Playstore / Apple appstore之间的潜在竞争条件

提问于
浏览
1

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

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

从谷歌Playstore下载v3的用户,在应用程序打开后,他会从codepush获得v2吗?我无法将v3推送到codepush,因为它具有可能会破坏的本机更改 .

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

1 回答

  • 1

    您可以在codepush文档中看到以下文本here

    目标二进制版本参数这指定要为其发布更新的应用程序的商店/二进制版本,以便只有运行该版本的用户才会收到更新,而运行较旧和/或较新版本的应用程序二进制文件的用户将不会 . 由于以下原因,这很有用:1)如果用户运行较旧的二进制版本,则CodePush更新中可能存在与其正在运行的内容不兼容的重大更改 . 2)如果用户正在运行较新的二进制版本,则假定它们正在运行的内容与CodePush更新相比更新(并且可能不兼容) . 如果未在release命令中指定targetBinaryVersion,则从build.gradle(或)指定如果指定目标版本,则将当前版本映射到该版本 .

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

    所以回答你的问题 .

    A user that downloads v3 from google playstore, upon app open, will he get v2 from codepush ?

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

    I can't push v3 to codepush because it has native changes that might break.

    您可以通过市场上已有的v3进行更改

相关问题