0

我正在准备一个应用程序以发布到应用程序商店,并且我关心 CI/CD 管道和 Code-Push。

这种情况如何发挥作用:

如果开发人员进行了 NPM 依赖项更新,并且更新了包含 JS 依赖的本机代码更改的包,Code-Push 是否仍会在用户设备下载本机代码更新之前更新用户设备上的 JS 包?

我的问题很清楚,我不是在尝试 OTA 更新本机代码 - 我指的是像 react-native-device-info 这样的包具有本机 Java/Swift 代码并且还具有需要一些 JS 代码的情况来自本机代码的 api 或事件常量。如果您将 react-native-device-info 的软件包版本升级到新版本,并且本机代码和 JS 代码都发生了更改,那么 code-push 是否有办法知道在本机代码/应用程序之前不更新包更新是因为 JS 包的代码依赖于本机代码?

或者,我是否正在考虑错误地使用 Code-Push 工具?

4

1 回答 1

2

codepush 的工作方式是更新应用程序的 JS 包。您的要求是更新具有本机更改的 NPM 包并仅更新您的客户端,这是不可能的。如果你这样做,当 JS 接触本机代码时,你可能会导致应用程序崩溃。

代码推送是否有办法知道在更新本机代码/应用程序之前不更新包,因为 JS 包的代码依赖于本机代码?

简单的答案 否 Codepush 的目标是版本号,因此您在商店中发布的新版本将具有新的版本号,因此无需更新旧版本应用程序的捆绑包。

如果您真的希望所有用户都迁移到新版本,请使用 codepush 推送警报或某种消息,要求用户更新。

于 2020-05-05T18:17:09.943 回答