如何更新用Expo构建的React Native应用及推送给已安装用户?
用Expo实现React Native应用的空中更新(OTA)
因为你的应用还没上架应用商店,Expo的**空中更新(OTA, Over-The-Air)**是最适合的方案,不用重新分发APK就能推送代码变更给已安装用户,以下是具体操作:
前提确认
确保你使用的是Expo Managed Workflow(新手默认都是这个模式,无需手动配置原生代码)。
操作步骤
第一步:验证本地修改
先在本地测试生产环境的打包效果,避免发布后出问题:expo start --no-dev --minify确认应用运行正常,没有报错。
第二步:发布更新到Expo服务器
执行发布命令,把你的代码和资源上传到Expo云端:expo publish首次执行会提示你登录Expo账号,按指引操作即可。发布完成后,Expo会生成一个唯一的更新版本。
第三步:用户获取更新
- 自动更新:已安装应用的用户打开App时,Expo会自动后台检查最新版本,下载完成后,下次启动App就会加载新内容。
- 手动触发更新(可选):如果想让用户立即收到更新,可以在代码里添加手动检查逻辑,用
expo-updates库:import * as Updates from 'expo-updates'; // 检查并应用更新的函数 async function checkAndApplyUpdate() { try { const updateInfo = await Updates.checkForUpdateAsync(); if (updateInfo.isAvailable) { await Updates.fetchUpdateAsync(); // 下载完成后重启应用生效 Updates.reloadAsync(); } } catch (err) { console.error('更新失败:', err); } } // 可在App启动时调用,或给用户加一个"检查更新"按钮触发 // useEffect(() => { // checkAndApplyUpdate(); // }, []);
注意事项
- OTA只能更新JavaScript代码和
/assets目录下的资源(图片、字体等),如果修改了需要原生配置的内容(比如新增依赖需要原生权限、修改原生代码),OTA无法生效,必须重新生成APK分发给用户。 - 只有用
expo build:android生成的生产环境APK才会自动检查OTA更新,debug包(expo run:android生成的)默认不会触发更新。 - 如果用户网络不佳或禁用了自动更新,可能无法获取新版本,可以在App内添加提示引导用户手动检查。
- 你可以在Expo后台查看所有发布的更新历史,管理不同版本。
内容的提问来源于stack exchange,提问作者Shakil Ahmed
相关产品推荐
相关产品推荐

