【问题标题】:How to deploy codespush bundle on old targets when there are native changes on the new build当新版本有本机更改时,如何在旧目标上部署 Codespush 包
【发布时间】:2021-06-28 10:05:48
【问题描述】:

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

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

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

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

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

问题是如何使用新的本地代码部署我的新版本 和包呈现给我的应用程序的旧版本,它没有这些 本机软件包不会遇到所有使用旧版本应用程序的用户的多次崩溃...

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

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

我等待您的回复。

【问题讨论】:

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


    【解决方案1】:

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

    为什么?

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

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

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

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

    【讨论】:

    • :: 非常感谢您的回复...所以这意味着如果我将我的应用程序上的最新更改更新为安装到旧版本的新软件包,而不是安装在该版本上的新软件包,应用程序将刹车/崩溃!!我多么希望 codePush 可以更新系统以适应更改为原生模块和所有
    • 这个假设是正确的。如果答案对您有所帮助,请将其选为已接受的答案。谢谢。
    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2021-12-01
    • 2021-06-30
    • 2017-02-08
    • 1970-01-01
    相关资源
    最近更新 更多