You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Expo 48.0.0版本下应用发布与本地运行相关问题求助

Expo 48.0.0版本下应用发布与本地运行相关问题求助

我来帮你梳理下你碰到的这些麻烦,给你一些实际的解决思路,希望能帮你顺利解决问题:

一、发布后无法正常加载应用的问题

你提到新发布的项目链接跳转到账号页面、iOS扫码提示No project found at exp://exp.host/@accountname/project,主要可能是这几个原因:

  • 项目Slug不匹配或缓存干扰
    • 先检查项目根目录的app.json里的slug字段,确保和你Expo账号下的项目路径完全一致(也就是@accountname/project里的project部分),别出现拼写错误。
    • 发布时带上清除缓存的参数:expo publish --clear,避免旧版本的缓存影响新发布的内容。
  • Expo Go版本不兼容
    • 确认你的手机上的Expo Go是最新版本,和你项目用的SDK 48.0.0完全兼容,去App Store/Google Play更新到最新版再试试。
  • 项目冲突
    • 如果你之前的旧项目还在Expo账号下,可能会和新项目的Slug冲突。你可以登录Expo网页版的Dashboard,找到旧项目后进入设置页面,拉到最底部的「Danger Zone」里选择删除项目;或者直接修改新项目app.json里的slug,换个唯一的名称再重新发布。

二、本地运行的metro-core缺失与设备连接问题

1. Cannot find module 'metro-core'错误

这个问题大多是因为本地全局的Expo CLI版本和项目依赖不匹配,或者node_modules损坏导致的:

  • 先删除项目根目录的node_modules文件夹和package-lock.json(或yarn.lock)文件,然后重新执行npm install(或yarn install)重新安装依赖。
  • 尽量用npx expo start代替全局的expo start,这样会使用项目本地依赖的Expo CLI版本,避免全局版本冲突(这也是你用npx能启动的原因)。

2. 设备扫码无法连接的问题

不管是iPhone的「无法连接服务器」还是Android的蓝屏错误,核心大概率是网络连接的问题:

  • 确保你的电脑和测试手机处于同一个Wi-Fi网络下,并且关闭VPN、代理这类会阻断网络的工具。
  • 启动Expo时加上隧道模式:npx expo start --tunnel,这个模式会生成一个公网链接,即使不在同一个局域网也能正常访问,非常适合给团队或客户远程测试。
  • 注意不要扫终端里的localhost(也就是exp://127.0.0.1:19000)的二维码,这个地址手机是访问不到的,应该扫「LAN」类型的二维码,对应的是你电脑的局域网IP(比如exp://192.168.x.x:19000),或者手动在Expo Go里输入这个LAN地址。

三、关于是否需要Build的问题

你不用纠结要不要Build——Expo Publish本身就是用来分享开发中应用的最佳方式,不需要先Build就能让团队和客户用Expo Go扫码打开你的应用。Build是当你需要把应用提交到App Store/Google Play时才需要做的操作,所以你当前的需求用Publish完全没问题,只是前面的配置和网络问题需要调整。

如果按照上面的步骤还是有问题,可以再检查下app.json里的sdkVersion是不是准确设置成了48.0.0,或者把项目的package.json依赖清单贴出来,能更精准地排查问题。

备注:内容来源于stack exchange,提问作者WizzyOlammie

火山引擎 最新活动