这个为模拟器构建的命令在 Xcode 14 上运行得很好:
xcodebuild \
-project MyProject.xcodeproj \
-scheme App \
-destination "platform=iOS Simulator,name=iPhone 14" \
-derivedDataPath ../../derivedData \
clean build
但是在 Xcode 15 上它给出了这个错误:
MyProject.xcodeproj:错误:“应用程序”需要配置文件。在签名和功能编辑器中选择配置文件。 (在项目“MyProject”的目标“App”中)
这个错误不是真的。尽管我没有设置配置文件,但我不需要它们来构建模拟器。事实上,Xcode 15 GUI 可以在没有它们的情况下为模拟器构建这个项目。
我非常有信心 Xcode 15 版本的
xcodebuild
完全忽略了 -destination
参数,因为我在失败之前看到了这个警告:
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00006000-0008316802D8801E }
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
...
{ platform:iOS Simulator, id:5575F133-1565-4864-882C-78E3EA80F618, OS:17.0, name:iPhone 14 }
显然我想要的就在该列表中。为什么它认为不匹配?
我很确定这是 Xcode 15 中的一个错误。一旦我删除了模拟器并使用完全相同的名称重新创建它,相同的构建命令就可以正常工作。