是否可以确保在全新安装我的代码推送的react-native应用程序后,用户从代码推送中获取最新部署的包?
我的目的是确保用户即使在第一次打开我的应用程序后也始终可以获得最新版本。
编辑 1
我已经知道 code-push configurations例如InstallMode和checkFrequency。我目前使用的是侵入性较小的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)。
明显的解决方案是:
- 在 Play 商店中为我的应用的每个新版本发布一个新的 apk(当然,除了通过代码推送发布它)。
- 使用更具侵入性的安装模式。
- 将每个代码推送版本标记为强制安装。
我同意第一个选项(并且仅限第一个选项)。我想检查是否还有其他我不知道的选择。老实说,我不知道我想要的东西是否真的可以通过代码推送来实现。
最佳答案
根据评论中的讨论,您希望实现的目标可以通过手动更新代码推送来实现。为此,您可以在 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/