Expo React iOS构建失败:DVTDeviceOperation报错空构建号与DVTBuildVersion不兼容
Expo React iOS构建失败:DVTDeviceOperation报错空构建号与DVTBuildVersion不兼容
我之前在M1 Max的Mac上也碰到过一模一样的问题!这个报错的核心原因很明确——你的iOS项目里构建号(Build Number)是空的,而新版本Xcode要求这个字段必须有有效值,不能留空,所以才会触发和DVTBuildVersion不兼容的提示。
解决办法一:手动在Xcode中设置构建号
- 打开项目根目录下的
ios文件夹,双击里面的[你的项目名].xcworkspace文件启动Xcode - 在左侧项目导航栏选中你的项目,然后在右侧选择对应的Target(一般和项目名一致)
- 切换到「General」标签页,找到「Identity」区域,你会看到「Build」输入框是空的
- 随便填一个数字(比如
1,或者和版本号对应,比如版本号是1.0.0就填100),按Command+S保存设置 - 关闭Xcode,回到终端重新运行
npx expo run:ios
解决办法二:通过Expo配置自动填充构建号
如果不想每次prebuild都手动改,可以直接在Expo的配置文件里指定构建号,这样prebuild的时候会自动同步到iOS项目:
- 打开项目根目录的
app.json(或者app.config.js) - 在
expo节点下的ios字段里添加buildNumber配置,示例如下:
"expo": { "name": "你的项目名称", "slug": "你的项目标识", "ios": { "bundleIdentifier": "com.yourname.yourapp", "buildNumber": "1" // 这里填写你需要的构建号,支持数字或带点的格式 } }
- 保存配置后,先清理旧的prebuild产物:
npx expo prebuild --clean - 最后重新运行构建命令:
npx expo run:ios
要是按上面的步骤操作后还是有问题,可以试试重启Xcode,或者用Xcode顶部菜单的「Product」->「Clean Build Folder」清理一下构建缓存,基本就能解决这个报错了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

