Xcodebuild打包报错:My Mac运行目标不适用于My-iOS-App方案如何解决?
这个问题我之前踩过坑,大概率是xcodebuild默认选了不合适的运行目标,或者你的Scheme配置里误把Mac设成了可运行选项。给你几个实用的解决办法:
命令行明确指定iOS运行目标
xcodebuild如果不手动指定destination参数,可能会自动选择当前可用的设备(包括开启了Mac Catalyst时的My Mac),导致目标不匹配。你可以在归档命令里加上明确的iOS目标:
用于发布的通用iOS归档命令:xcodebuild archive -workspace MyApp.xcworkspace -scheme 'My-iOS-App' -destination 'generic/platform=iOS' -archivePath ./MyApp.xcarchive针对iOS模拟器的归档命令(测试用):
xcodebuild archive -workspace MyApp.xcworkspace -scheme 'My-iOS-App' -destination 'platform=iOS Simulator,name=iPhone 15' -archivePath ./MyApp.xcarchive这里的
generic/platform=iOS是通用的iOS归档目标,适合后续打包发布;如果是测试场景,可以指定具体的模拟器型号。检查并修正Scheme配置
打开Xcode,通过菜单栏Product → Scheme → Edit Scheme进入Scheme编辑界面,切换到Run标签页,查看Destination区域的设备选项:- 确保只勾选了iOS相关的设备(iOS模拟器/真机),取消勾选My Mac或Mac Catalyst选项;
- 如果你的App根本不需要支持Mac Catalyst,直接在项目设置的
Info标签页里,找到Deployment Info,取消勾选Mac平台的支持,这样Scheme里就不会出现Mac相关目标了。
清理Xcode缓存和Derived Data
有时候旧的缓存会导致Xcode对运行目标的识别混乱,执行下面的命令清理Derived Data:rm -rf ~/Library/Developer/Xcode/DerivedData清理完成后重启Xcode,再重新执行归档命令试试。
验证项目的Deployment Target设置
进入项目的主设置界面,检查Info标签页下的Deployment Info,确认平台只勾选了iOS,没有包含Mac。如果误选了Mac,取消后保存设置。
如果上面的方法都不行,可以先执行xcodebuild -showdestinations命令,列出当前所有可用的运行目标,找到对应的iOS目标参数,复制到你的归档命令中,确保目标完全匹配。
内容的提问来源于stack exchange,提问作者user4992124

