react-native - 当新版本有本机更改时,如何在旧目标上部署 Codespush 包
问题描述
在我继续之前,让我告诉你我知道代码推送到目标构建的代码
appcenter codepush release-react -a aountName/appName -d Production -m --description "CommentHere" -t versionName
我试图自己解决这个问题,但我无法做到。
我有几个版本的应用程序,我使用 CodePush 部署了这些版本,并且一切正常,但是当我在最新版本上安装新软件包时,我开始担心崩溃。
这意味着当前的代码库与旧版本相比会有新的原生差异。
问题是我如何才能将我的新版本与新的本机代码和包部署到我的应用程序的旧版本中,而旧版本的应用程序没有这些本机包,而不会遇到所有使用旧版本应用程序的用户的几次崩溃...
我问这个因为我有一种感觉,如果我将新版本与 UI 中的新更改和本机更改推送到我的应用程序的旧版本,应用程序旧应用程序会崩溃。
如果旧版本出现错误,我该如何修复它并仅为旧版本部署它?错误可能很严重,并不是每个人都会拥有最新版本的应用程序,或者,错误可能只存在于旧版本的应用程序上。
我在等你的回复。
解决方案
代码推送不会影响在 React-Native 应用程序的 Android 或 iOS 项目中编写的任何本机代码。如果您仔细阅读文档,它会明确表示它不会更改/修改/更新应用程序的本机部分。
为什么?
这是因为 CodePush 机制的工作方式。本质上,CodePush 只是存储和触发 React-Native 应用的 JS bundle 的更新。
这就是为什么我们只用 CodePush HOC(高阶组件)包装 JS 主应用程序实例。这就是你这样做时发生的事情:
CodePush(MyApp); //wrapping the js bundle at app-root
因此,不幸的是,在您的情况下,如果涉及本机代码,无论部署到应用程序的新版本还是旧版本,它都必须是 AppStore / Playstore 驱动的部署。
推荐阅读
- javascript - 为什么这个 readline 异步迭代器不能正常工作?
- javascript - Arraybuffer 无法输入字符串,Angular。我正在尝试在页面上显示上传的图片
- javascript - JavaScript 导出或函数定义中 < 和 > 的含义
- php - Laravel 渴望加载结果不过滤,也返回 Null
- sql - 如何处理用户在一段时间内可以发布的固定最大帖子数?
- node.js - 在 Google Cloud Storage 上禁用缓存
- c# - 在 N 层应用程序中使用 WPF 和 WCF 在 Datagrid 中显示数据库数据
- javascript - 在 gatsby 构建命令上出现错误:TypeError:来自工作人员的意外响应:未定义
- python - 为什么“DataFrame”对象不可调用
- python - cmap.set_under() 和 cmap.set_over() 没有出现在颜色栏中