问题描述
我正在尝试使用xcodebuild
CLI通过“发布配置”(-c Release
)和iOS模拟器的目标(-destination "platform: iOS Simulator"
)来构建我的应用程序。但是,xcodebuild
似乎不支持此行为,因为它的响应是:
$ xcodebuild -workspace Y.xcworkspace -scheme X -configuration Release -destination 'platform=iOS Simulator'
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator }
Missing required device specifier option.
The device type “iOS Simulator” requires that either “name” or “id” be specified.
Please supply either “name” or “id”.
Available destinations for the "X" scheme:
{ platform:iOS Simulator,id:E01124DF-3E66-490B-BD28-351FF6CD3D1A,OS:14.1,name:iPad (8th generation) }
{ platform:iOS Simulator,id:40233395-556F-4A5B-A499-A238C4FA159A,name:iPad Air (4th generation) }
{ platform:iOS Simulator,id:FE1018BD-4128-4E1F-9FE8-FEA4054DD8A8,name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator,id:88F79AD4-1F96-48B8-897B-D74DB4D6BBC2,name:iPad Pro (11-inch) (2nd generation) }
{ platform:iOS Simulator,id:54BA4991-5C8D-41E4-9615-AEFDFAF167ED,name:iPad Pro (12.9-inch) (4th generation) }
{ platform:iOS Simulator,id:2BEF87F9-5F1A-4339-B2C4-B9E634D03DB4,name:iPhone 8 }
{ platform:iOS Simulator,id:E9CFA859-26B4-4009-A2FB-80161792FA30,name:iPhone 8 Plus }
{ platform:iOS Simulator,id:DA1BE525-88B4-46F9-BE22-2EE2F46B669E,name:iPhone 11 }
{ platform:iOS Simulator,id:5C658068-B26A-4265-9D49-D84084BFBB4F,name:iPhone 11 Pro }
{ platform:iOS Simulator,id:455801A6-11F7-473B-97EB-FFE991C0CF48,name:iPhone 11 Pro Max }
{ platform:iOS Simulator,id:7FC46741-BE28-4FA1-9921-6D341EAC5A36,name:iPhone 12 }
{ platform:iOS Simulator,id:F5321E54-6500-4349-9175-C9715F3E230B,name:iPhone 12 Pro }
{ platform:iOS Simulator,id:B3F46645-5380-4566-9070-DA25817B88D2,name:iPhone 12 Pro Max }
{ platform:iOS Simulator,id:EBA39463-9D2E-40AB-B2E7-E802D8AE8680,name:iPhone 12 mini }
{ platform:iOS Simulator,id:16F15877-230B-46FC-A36C-C984DFE12E66,name:iPhone SE (2nd generation) }
{ platform:iOS Simulator,id:1588FB27-6FD2-4970-9D55-FF430006C766,name:iPod touch (7th generation) }
Ineligible destinations for the "X" scheme:
{ platform:iOS,id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder,name:Any iOS Device }
{ platform:iOS Simulator,id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder,name:Any iOS Simulator Device }
{ platform:macOS,variant:Mac Catalyst,name:Any Mac }
TLDR:
-
为什么将“任何iOS模拟器设备”选项列为不合格?
-
有什么方法可以为模拟器创建发布版本吗?
注意:我也尝试使用-sdk iphonesimulator
选项而不是-destination ...
,但是我的iOS应用包括一个WatchKit应用,该应用在尝试建立依赖关系时会混淆xcode。
解决方法
啊,想通了。我只是想念“通用”说明符。所以应该是:
-destination "generic/platform=iOS Simulator"