2

是否可以确保在全新安装我的 code-pushified react-native 应用程序后,用户从 code-push 获得最新部署的捆绑包?

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

编辑 1

我已经知道诸如InstallModecheckFrequency之类的代码推送配置。我目前正在使用侵入性较小的installMode = ON_NEXT_RESTART

我想避免的情况如下:我首先在 Play Store 上发布我的应用程序(让我们做一个 Android 示例),版本为 1.0.0。比方说,6 个月后,我的应用程序在 1.0.27 版上进行了许多新功能和错误修复。如果我只在 code-push 上发布更新(新版本),那么 Play 商店中可用的原始 apk 仍包含捆绑版本 1.0.0。这意味着任何新用户在安装后第一次打开该应用程序,都将获得 6 个月大的 1.0.0 版本,而没有最新版本包含的任何新功能和修复。只有在重新启动应用程序后(假设它发生在第二天),用户才会从 code-push 获得 1.0.27 版本(记住我使用的是installMode = ON_NEXT_RESTART)。

显而易见的解决方案是:

  1. 为我的应用程序的每个新版本在 Play Store 上发布一个新的 apk(当然,除了在代码推送上发布它)。
  2. 使用更具侵入性的installMode
  3. 将每个代码推送版本标记为强制安装。

我对第一个选项(并且只有第一个选项)没问题。我想检查是否还有其他我不知道的选项。老实说,我不知道我想要的是否真的可以通过代码推送来实现。

4

1 回答 1

4

根据评论中的讨论,您希望实现的目标可以通过手动更新代码推送来实现。为此,您可以在 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,
                    });
                });
            }
        });
    }
}
于 2018-01-06T12:58:21.967 回答