You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14中xcodebuild归档iOS Simulator报错:找不到通用目标

问题

使用xcodebuild脚本编译用于其他Xcode项目的Framework,需归档全架构版本。升级Xcode 14后,iOS Simulator的归档命令报错,但必须支持模拟器编译以方便开发者测试。

执行的归档命令:

xcodebuild archive -scheme <TargetName> -destination 'generic/platform=iOS Simulator' -archivePath <ArchivePath> SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

报错信息:

xcodebuild: error: Unable to find a destination matching the provided destination specifier:
    { generic:1, platform:iOS Simulator }

其他平台(watchOS、iOS、watchOS Simulator)的同类命令均可正常执行,仅iOS Simulator失败。查看xcodebuild输出的可用目标列表,发现watchOS Simulator有通用占位条目:

{ platform:watchOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-watchsimulator:placeholder, name:Any watchOS Simulator Device  

但iOS Simulator没有对应的通用条目,请问这是否是问题根源?如果是,如何添加通用iOS Simulator目标?如果不是,问题出在哪里?

完整xcodebuild命令输出:

Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild archive -scheme <SCHEME> -destination "generic/platform=iOS Simulator" -archivePath Archiver/<archive-name>.xcarchive SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

User defaults from command line:
IDEArchivePathOverride = /<directory>/<archive-name>.xcarchive
IDEPackageSupportUseBuiltinSCM = YES

Build settings from command line:
BUILD_LIBRARIES_FOR_DISTRIBUTION = YES
SKIP_INSTALL = NO

2022-10-03 16:18:52.358 xcodebuild[17449:3179785] Writing error result bundle to /var/folders/lj/n7mj7ccd3dd4fds0x_0jh0w00000gn/T/ResultBundle_2022-03-10_16-18-0052.xcresult
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
    { generic:1, platform:iOS Simulator }

Available destinations for the <scheme-name> scheme:
    { platform:macOS, arch:x86_64, variant:Mac Catalyst, id:41E4E96D-C631-58DB-8E17-3556BF095CE6 }
    { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
    { platform:macOS, variant:Mac Catalyst, name:Any Mac }
    { platform:watchOS, id:dvtdevice-DVTiOSDevicePlaceholder-watchos:placeholder, name:Any watchOS Device }
    { platform:watchOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-watchsimulator:placeholder, name:Any watchOS Simulator Device }
    { platform:watchOS Simulator, id:8B93893B-58A9-4BD5-BC84-D78DF46E3737, OS:8.5, name:38mm }
    { platform:watchOS Simulator, id:9A39430C-1550-4B53-8665-B3E8E3DD437C, OS:7.0, name:AWSE 40mm 7.0 }
    { platform:watchOS Simulator, id:85EAEDB9-281C-4C42-BB07-D381344B4F01, OS:9.0, name:Apple Watch SE (44mm) (2nd generation) }
    { platform:watchOS Simulator, id:7B667533-D65F-4206-A077-2D58CF319030, OS:7.0, name:Apple Watch Series 3 - 38mm }
    { platform:watchOS Simulator, id:2F0A6761-237E-46FE-B44B-FA5E11FD4A21, OS:7.0, name:Apple Watch Series 3 - 42mm }
    { platform:watchOS Simulator, id:EFEEDC25-E85E-4168-B6F3-96F8298A8E6E, OS:7.0, name:Apple Watch Series 4 - 40mm }
    { platform:watchOS Simulator, id:1525C7D5-CF81-47EA-8D4F-9B26AFB66BF8, OS:7.0, name:Apple Watch Series 4 - 44mm }
    { platform:watchOS Simulator, id:56F2E561-28F1-442D-BEB9-ED1877717760, OS:7.0, name:Apple Watch Series 4 - 44mm }
    { platform:watchOS Simulator, id:A8C716BF-F1D3-4516-BB49-5E91363DBB5F, OS:7.0, name:Apple Watch Series 5 - 40mm }
    { platform:watchOS Simulator, id:0656A4DC-9185-45D6-AE1C-17FAD1B1D0A7, OS:8.5, name:Apple Watch Series 5 - 40mm }
    { platform:watchOS Simulator, id:698CCD93-B788-4DDA-90AC-07661A9629B6, OS:9.0, name:Apple Watch Series 5 - 40mm }
    { platform:watchOS Simulator, id:730D0366-0323-4F3F-996A-561FC0E9AAFC, OS:7.0, name:Apple Watch Series 5 - 44mm }
    { platform:watchOS Simulator, id:3023177A-19DD-4F96-A73E-197259BC272C, OS:8.5, name:Apple Watch Series 5 - 44mm }
    { platform:watchOS Simulator, id:11510526-D5DC-434C-A90B-3BBC200CF8FB, OS:9.0, name:Apple Watch Series 5 - 44mm }
    { platform:watchOS Simulator, id:754F83EC-91F0-4256-B8E1-0D3C61BA7FF8, OS:8.5, name:Apple Watch Series 6 - 40mm }
    { platform:watchOS Simulator, id:13A6B166-22FF-438A-812A-B6950C75F962, OS:9.0, name:Apple Watch Series 6 - 40mm }
    { platform:watchOS Simulator, id:0C669787-AE31-4A05-AA8C-EED110A2263A, OS:8.5, name:Apple Watch Series 6 - 44mm }
    { platform:watchOS Simulator, id:A08AFD03-D2A2-4174-BEE1-86251CE83B5A, OS:9.0, name:Apple Watch Series 6 - 44mm }
    { platform:watchOS Simulator, id:84E1B07A-C242-40A3-AD7A-3B71149261A8, OS:8.5, name:Apple Watch Series 7 - 41mm }
    { platform:watchOS Simulator, id:D5774F1B-7970-45E8-AEE1-966BD0230D94, OS:9.0, name:Apple Watch Series 7 - 41mm }
    { platform:watchOS Simulator, id:6F1E4CFD-E60B-4BA0-BDB9-CB7B3C27CBD2, OS:8.5, name:Apple Watch Series 7 - 45mm }
    { platform:watchOS Simulator, id:5D127481-A881-4702-825C-AD30F6E70985, OS:9.0, name:Apple Watch Series 7 - 45mm }
    { platform:watchOS Simulator, id:2162F742-53DB-4DC1-8E99-DC3008123038, OS:9.0, name:Apple Watch Series 8 (41mm) }
    { platform:watchOS Simulator, id:9DE0C9A0-AEF3-49DB-BA48-F4E3CF0A6192, OS:9.0, name:Apple Watch Series 8 (45mm) }
    { platform:watchOS Simulator, id:5B5B40C5-2161-48FF-8042-F5035079BA2C, OS:9.0, name:Apple Watch Ultra (49mm) }
    { platform:iOS Simulator, id:46D15E87-293B-4180-BC8E-C9B3C791486E, OS:16.0, name:iPhone 8 }
    { platform:iOS Simulator, id:8EBBAB0A-67C8-4B7C-BED3-00CF2E3DEB29, OS:16.0, name:iPhone 8 Plus }
    { platform:iOS Simulator, id:86F72120-9578-494B-A2B8-8307A3B60992, OS:16.0, name:iPhone 11 }
    { platform:iOS Simulator, id:4E7ACBF2-D991-49FF-A949-EBF206620640, OS:16.0, name:iPhone 11 Pro }
    { platform:iOS Simulator, id:C944E87A-D90A-4436-9CF1-13697A9A20E0, OS:16.0, name:iPhone 11 Pro Max }
    { platform:iOS Simulator, id:6C88747D-A158-4299-8FE3-D5A14274AD65, OS:16.0, name:iPhone 12 }
    { platform:iOS Simulator, id:A1C762C1-586A-4F3E-BD5E-D1107A7A3DC5, OS:16.0, name:iPhone 12 Pro }
    { platform:iOS Simulator, id:DC323D96-0FB9-4804-821B-6B300989071A, OS:16.0, name:iPhone 12 Pro Max }
    { platform:iOS Simulator, id:3713AE79-E945-4437-9543-EDEADD55A20F, OS:16.0, name:iPhone 12 mini }
    { platform:iOS Simulator, id:43D651EB-53C5-4DB1-B768-A96A0D995551, OS:16.0, name:iPhone 13 }
    { platform:iOS Simulator, id:68F75521-508F-41B7-995E-738A67C0F69C, OS:16.0, name:iPhone 13 Pro }
    { platform:iOS Simulator, id:9335E9C2-BB1E-4746-9717-7E78801AD169, OS:16.0, name:iPhone 13 Pro Max }
    { platform:iOS Simulator, id:7BC5CAAC-D23C-45B4-A714-ECEB6C2439A1, OS:16.0, name:iPhone 13 mini }
    { platform:iOS Simulator, id:06242371-CE14-49AC-A16A-981EC1AC308D, OS:16.0, name:iPhone 14 }
    { platform:iOS Simulator, id:969BE080-BD61-4C30-8EBB-F8CD6C754986, OS:16.0, name:iPhone 14 Plus }
    { platform:iOS Simulator, id:595D8F66-C0F1-4854-8C17-C30035E04D0A, OS:16.0, name:iPhone 14 Pro }
    { platform:iOS Simulator, id:5BD654A4-2983-4C5C-B869-33FCDDED3492, OS:16.0, name:iPhone 14 Pro Max }
    { platform:iOS Simulator, id:CC7BF3A6-62CB-4AC3-9E13-ED20DA1CC9E0, OS:16.0, name:iPhone SE (3rd generation) }

解决方案

问题根源

是的,问题核心就是Xcode 14移除了iOS Simulator的通用占位目标(Any iOS Simulator Device),导致generic/platform=iOS Simulator的目标无法匹配到可用设备。

替代方案

无需手动添加通用目标,直接修改归档命令即可,以下三种方案任选:

方案1:指定具体模拟器设备

从xcodebuild输出的可用目标中选择一个具体的iOS Simulator设备,比如iPhone 14,修改命令如下:

xcodebuild archive -scheme <TargetName> -destination 'platform=iOS Simulator,name=iPhone 14,OS=16.0' -archivePath <ArchivePath> SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

也可以直接使用设备ID:

xcodebuild archive -scheme <TargetName> -destination 'platform=iOS Simulator,id=06242371-CE14-49AC-A16A-981EC1AC308D' -archivePath <ArchivePath> SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

方案2:直接指定架构编译

跳过destination参数,通过ARCHS参数直接指定模拟器需要的架构(x86_64对应Intel Mac,arm64对应Apple Silicon Mac):

xcodebuild archive -scheme <TargetName> -sdk iphonesimulator ARCHS="x86_64 arm64" -archivePath <ArchivePath> SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

这种方式不依赖具体设备,直接针对模拟器SDK编译全架构版本。

方案3:修改项目设置后简化命令

在Xcode项目的Build Settings中,将Valid Architectures设置为包含x86_64和arm64,然后使用简化命令:

xcodebuild archive -scheme <TargetName> -sdk iphonesimulator -archivePath <ArchivePath> SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

验证

编译完成后,可通过以下命令查看Framework的架构是否符合要求:

lipo -info <FrameworkPath>

输出应包含x86_64和arm64两种架构。


内容的提问来源于stack exchange,提问作者Bocaxica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:50:25