react-native - 获取捆绑在全新应用程序安装上的最新代码推送部署

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

是否可以确保在全新安装我的代码推送的react-native应用程序后,用户从代码推送中获取最新部署的包?

我的目的是确保用户即使在第一次打开我的应用程序后也始终可以获得最新版本。

编辑 1

我已经知道 code-push configurations例如InstallModecheckFrequency。我目前使用的是侵入性较小的installMode = ON_NEXT_RESTART

我想避免的情况如下:我首先在 Play 商店上发布我的应用程序(让我们做一个 Android 示例),版本为 1.0.0。假设经过 6 个月的时间以及大量新功能和错误修复后,我的应用程序的版本为 1.0.27。如果我仅在代码推送上发布更新(新版本),则 Play 商店中可用的原始 apk 仍包含捆绑版本 1.0.0。这意味着任何新用户在安装后首次打开该应用程序时,都会获得 6 个月前的 1.0.0 版本,而没有最新版本包含的任何新功能和修复。仅在重新启动应用程序后(假设发生在第二天),用户才会从代码推送中获取 1.0.27 版本(请记住,我使用的是 installMode = ON_NEXT_RESTART)。

明显的解决方案是:

  1. 在 Play 商店中为我的应用的每个新版本发布一个新的 apk(当然,除了通过代码推送发布它)。
  2. 使用更具侵入性的安装模式
  3. 将每个代码推送版本标记为强制安装。

我同意第一个选项(并且仅限第一个选项)。我想检查是否还有其他我不知道的选择。老实说,我不知道我想要的东西是否真的可以通过代码推送来实现。

最佳答案

根据评论中的讨论,您希望实现的目标可以通过手动更新代码推送来实现。为此,您可以在 AsyncStorage 中设置一个变量来表示您至少打开过一次应用程序,如果不存在则控制并立即更新应用程序。下面是一个示例;

class MyApp extends Component {
    componentDidMount() {
        AsyncStorage.getItem('@AppHasOpened').then((appHasOpened) => {
            if (!(appHasOpened && appHasOpened === 'yes')) {
                AsyncStorage.setItem('@AppHasOpened', 'yes').then(() => {
                    codePush.sync({
                        installMode: codePush.InstallMode.IMMEDIATE,
                    });
                });
            }
        });
    }
}

关于react-native - 获取捆绑在全新应用程序安装上的最新代码推送部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48109358/

相关文章:

css - 如何使用 react-native 根据不同语言动态更改字体系列

ios - react native : Flex for ScrollView doesn't work

android - Codepush React Native Android staging- 在根项目中找不到任务 installReleaseStagingDebug

react-native - 如何在React Native Android应用中显示当前的CodePush版本标签?

react-native - 如果构建是强制性的,如何只显示更新对话框

react-native - 代码推送检查更新

react-native - 导航到另一个屏幕时关闭模式

javascript - React Native 和 React 的 .map 类似吗?

react-native - 解决与项目根目录外的 native 包文件相关的 Assets

ios - React Native 应用程序在 iOS TestFlight 上立即崩溃