React Native CLI iOS构建失败(错误码70),需手动指定UDID
React Native run-ios 省略UDID参数构建失败问题解决
问题描述
使用react-native init创建的全新项目,执行react-native run-ios --udid='4720C15A-8AED-45E5-B3CC-58461F5B4413'可正常运行,但省略UDID参数执行react-native run-ios时构建失败,返回错误码70。错误日志显示React Native默认使用了一个不存在的目标ID(863BC019-F4A9-52FA-A489-94F23F2E4446),而可用设备列表中并无该ID。通过Xcode UI构建运行可正常工作,react-native start已在独立终端启动。
环境信息
- react 18.2.0
- react-native 0.71.1
- react-native CLI 10.1.3
- Xcode 14.2
- macOS Ventura 13.1(M1 Pro)
问题原因
React Native CLI选择默认设备时,会读取Xcode的设备缓存或历史配置记录。如果之前的模拟器/设备被删除但缓存未及时清理,就会导致CLI尝试连接一个不存在的设备。另外,M1芯片Mac在模拟器架构适配、Xcode设备列表同步环节,偶尔会出现这类缓存不一致的问题。
解决办法
1. 清理Xcode及模拟器缓存
- 关闭Xcode和所有运行中的模拟器
- 执行以下命令删除缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Developer/CoreSimulator/Devices - 重启Mac,重新打开Xcode,让系统重新生成设备列表
2. 手动指定默认设备
- 先查看所有可用设备:
xcrun simctl list devices - 找到常用设备的名称(比如
iPhone 14),直接指定设备运行:react-native run-ios --device "iPhone 14" - 也可以在项目的
package.json中添加快捷脚本,方便后续使用:
之后执行"scripts": { "ios": "react-native run-ios --device \"iPhone 14\"" }npm run ios即可直接启动指定设备
3. 更新React Native CLI
当前使用的CLI版本可能存在适配Xcode 14.2的bug,尝试更新到最新版本:
npm install -g react-native-cli@latest
更新完成后再执行react-native run-ios测试
4. 通过Xcode同步设备列表
- 打开Xcode,进入
Window > Devices and Simulators - 删除列表中显示为无效的模拟器,点击右上角的
Refresh按钮刷新设备列表 - 回到终端重新执行
react-native run-ios
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

