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,换个唯一的名称再重新发布。
- 如果你之前的旧项目还在Expo账号下,可能会和新项目的Slug冲突。你可以登录Expo网页版的Dashboard,找到旧项目后进入设置页面,拉到最底部的「Danger Zone」里选择删除项目;或者直接修改新项目
二、本地运行的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




