首页 > 解决方案 > 当新版本有本机更改时,如何在旧目标上部署 Codespush 包

问题描述

在我继续之前,让我告诉你我知道代码推送到目标构建的代码

appcenter codepush  release-react -a aountName/appName -d Production -m --description "CommentHere" -t versionName

我试图自己解决这个问题,但我无法做到。

我有几个版本的应用程序,我使用 CodePush 部署了这些版本,并且一切正常,但是当我在最新版本上安装新软件包时,我开始担心崩溃。

这意味着当前的代码库与旧版本相比会有新的原生差异。

问题是我如何才能将我的新版本与新的本机代码和包部署到我的应用程序的旧版本中,而旧版本的应用程序没有这些本机包,而不会遇到所有使用旧版本应用程序的用户的几次崩溃...

我问这个因为我有一种感觉,如果我将新版本与 UI 中的新更改和本机更改推送到我的应用程序的旧版本,应用程序旧应用程序会崩溃。

如果旧版本出现错误,我该如何修复它并仅为旧版本部署它?错误可能很严重,并不是每个人都会拥有最新版本的应用程序,或者,错误可能只存在于旧版本的应用程序上。

我在等你的回复。

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

解决方案


代码推送不会影响在 React-Native 应用程序的 Android 或 iOS 项目中编写的任何本机代码。如果您仔细阅读文档,它会明确表示它不会更改/修改/更新应用程序的本机部分。

为什么?

这是因为 CodePush 机制的工作方式。本质上,CodePush 只是存储和触发 React-Native 应用的 JS bundle 的更新。

这就是为什么我们只用 CodePush HOC(高阶组件)包装 JS 主应用程序实例。这就是你这样做时发生的事情:

CodePush(MyApp); //wrapping the js bundle at app-root

因此,不幸的是,在您的情况下,如果涉及本机代码,无论部署到应用程序的新版本还是旧版本,它都必须是 AppStore / Playstore 驱动的部署。


推荐阅读