Expo项目eject为bare workflow后无法在iOS真机构建运行
Expo Bare Workflow M1 Mac iOS真机部署失败解决步骤
1. 修复expo run:ios -d无法识别真机的问题
- 执行命令安装适配M1芯片的ios-deploy工具:
安装完成后重启终端,重新执行设备列表查询命令即可看到已连接的真机。禁止直接使用默认arm架构执行sudo arch -x86_64 gem install ios-deploygem install ios-deploy,该版本无法正常识别USB连接的iOS设备 - 若仍无法识别,执行
brew install usbmuxd安装USB通信依赖,重新插拔手机、确认手机上点击信任当前电脑即可。
2. 修复Xcode识别设备但构建立即失败的问题
按以下顺序排查配置:
- 打开项目
ios目录下的.xcworkspace文件(请勿打开.xcodeproj后缀的文件,否则会丢失CocoaPods依赖配置),选中项目Target进入「Signing & Capabilities」页:- 勾选Automatically manage signing,选择你自己的Apple ID作为开发团队
- 修改默认的Bundle Identifier为全局唯一值,例如将默认的
com.expo.yourapp改为com.yourcustomname.yourapp.demo,避免和其他应用标识冲突 - 确认Supported Destinations选项已包含iPhone类型,未被设置为仅支持模拟器
- 适配M1芯片架构配置:进入Target的「Build Settings」页:
- 找到Excluded Architectures配置项,在iOS Simulator对应的Debug配置中添加
arm64(注意不要给iOS真机配置加该规则) - 找到Build Active Architecture Only配置项,将Debug模式的值设置为
Yes
- 找到Excluded Architectures配置项,在iOS Simulator对应的Debug配置中添加
- 修复CocoaPods依赖的架构兼容问题:终端进入项目
ios目录,依次执行以下命令:
执行完成后打开Xcode,按sudo arch -x86_64 gem install ffi arch -x86_64 pod installCmd + Shift + K清理构建缓存,再删除~/Library/Developer/Xcode/DerivedData路径下对应项目的缓存文件夹。 - 真机端配置检查:
- iOS16及以上系统需要打开「设置-隐私与安全性-开发者模式」,重启手机后生效
- 第一次安装应用后,需要在「设置-通用-VPN与设备管理」中信任对应的开发者证书
3. 验证流程
先在Xcode中选中已连接的真机作为运行目标,点击运行按钮确认应用可以正常安装启动,之后再回到终端执行expo run:ios -d选择真机即可正常通过Expo CLI启动调试。
提示:使用免费个人Apple ID签名的应用有效期为7天,到期后需要重新构建安装,付费开发者账号签名的应用无此限制。
内容的提问来源于stack exchange,提问作者Stuart
相关产品推荐
相关产品推荐

