You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:15:51