xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
我正在使用 Visual Studio Team Services 来构建我的应用程序。当我尝试 运行 单元测试时,出现错误:
xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
这在升级到 Xcode 8.3 后开始。构建服务器有 8.3,但是当我 运行 单元测试时它想使用 8.2 模拟器。这失败了。
当我尝试使用 -destination
开关明确指定 8.3 模拟器时,它失败了。
-destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.3"
我也试过在目的地周围使用撇号 ',没有引号或撇号,以及模拟器 ID,但没有任何帮助。没有引号,我得到这个错误:
xcodebuild: error: Unknown build action 'Pro'.
我错了!我试图将 -destination
参数放入“操作”框中,如下所示:
我没有在“高级”下看到“参数”框。
当我把这个参数放在那里时,它起作用了!
奇怪的是它接受并尝试使用“操作”框中的 -destination 参数。
似乎这应该被禁止,或者如果允许,处理方式与它在参数框中时的处理方式相同。
感谢 GitHub 上的 madhurig reply 回答了我的问题,这让我明白了我的错误。
来到这里寻找同样错误的解决方案。作为附录,您还可以将单个 key=val 传递给 -destination 例如 -destination 'platform=iOS'
并且 xcodebuild 将告诉您该方案可用的所有替代方案。
λ ~/Development/app-ios/ task/JIOS-400-Earl-Grey-Spike* xcodebuild -workspace app.xcworkspace -scheme app -destination 'platform=iOS' -derivedDataPath "build" build-for-testing
User defaults from command line:
IDEDerivedDataPathOverride = /Users/schoudhary/Development/app-ios/build
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS }
Missing required device specifier option.
The device type “Generic iOS Device” requires that either “name” or “id” be specified.
Please supply either “name” or “id”.
Available destinations for the "App" scheme:
{ platform:iOS Simulator, id:D248DB01-A852-4360-A9C0-2D71AFE478D7, OS:10.3, name:iPad Air }
{ platform:iOS Simulator, id:CE87AF5A-141C-43DA-AE61-AF53593F37F7, OS:10.3, name:iPad Air 2 }
{ platform:iOS Simulator, id:E93B43E4-D24E-4927-B9EE-0375E15DCBD5, OS:10.3, name:iPad Pro (9.7 inch) }
{ platform:iOS Simulator, id:6D71DB17-0FE2-4D5E-BEE6-CC696445BA11, OS:10.3, name:iPad Pro (12.9 inch) }
{ platform:iOS Simulator, id:F7E37EF4-5E72-438A-A286-216C20158B47, OS:10.3, name:iPhone 5 }
{ platform:iOS Simulator, id:24653844-AE99-4B5B-8332-9FFD2208172F, OS:10.3, name:iPhone 5s }
{ platform:iOS Simulator, id:FD2089A4-BF3F-4F98-8E33-B7EFDCFE5B4D, OS:10.3, name:iPhone 6 }
{ platform:iOS Simulator, id:6EF0DFBD-E99E-4EB3-9C51-6E749F41B6E7, OS:10.3, name:iPhone 6 Plus }
{ platform:iOS Simulator, id:846E631C-6285-4B91-9BA6-1AB6E66C88DB, OS:10.3, name:iPhone 6s }
{ platform:iOS Simulator, id:A6943ADC-F6EF-42F6-9958-D966DFC419FC, OS:10.3, name:iPhone 6s Plus }
{ platform:iOS Simulator, id:B41ABED0-7554-438A-97AC-F34943ED4D79, OS:10.3, name:iPhone 7 }
{ platform:iOS Simulator, id:20F1582C-0D19-4F42-9DAD-43138FB923B9, OS:10.3, name:iPhone 7 Plus }
{ platform:iOS Simulator, id:683BB5CA-E0A8-4CE4-B0DD-AED4C4295B90, OS:10.3, name:iPhone SE }
Ineligible destinations for the "App" scheme:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
另一种到达正确目的地的有用方法。
尝试使用双引号而不是单引号,如下所示:
-destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.3"
这为我解决了同样的问题。
单引号和等号分隔符以'key=value'
的形式工作,如:
-destination 'platform=iOS Simulator,OS=12.1,name=iPhone X'
要获取 已知设备列表 使用:
instruments -s devices
我正在使用 Visual Studio Team Services 来构建我的应用程序。当我尝试 运行 单元测试时,出现错误:
xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
这在升级到 Xcode 8.3 后开始。构建服务器有 8.3,但是当我 运行 单元测试时它想使用 8.2 模拟器。这失败了。
当我尝试使用 -destination
开关明确指定 8.3 模拟器时,它失败了。
-destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.3"
我也试过在目的地周围使用撇号 ',没有引号或撇号,以及模拟器 ID,但没有任何帮助。没有引号,我得到这个错误:
xcodebuild: error: Unknown build action 'Pro'.
我错了!我试图将 -destination
参数放入“操作”框中,如下所示:
我没有在“高级”下看到“参数”框。 当我把这个参数放在那里时,它起作用了!
奇怪的是它接受并尝试使用“操作”框中的 -destination 参数。
似乎这应该被禁止,或者如果允许,处理方式与它在参数框中时的处理方式相同。
感谢 GitHub 上的 madhurig reply 回答了我的问题,这让我明白了我的错误。
来到这里寻找同样错误的解决方案。作为附录,您还可以将单个 key=val 传递给 -destination 例如 -destination 'platform=iOS'
并且 xcodebuild 将告诉您该方案可用的所有替代方案。
λ ~/Development/app-ios/ task/JIOS-400-Earl-Grey-Spike* xcodebuild -workspace app.xcworkspace -scheme app -destination 'platform=iOS' -derivedDataPath "build" build-for-testing
User defaults from command line:
IDEDerivedDataPathOverride = /Users/schoudhary/Development/app-ios/build
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS }
Missing required device specifier option.
The device type “Generic iOS Device” requires that either “name” or “id” be specified.
Please supply either “name” or “id”.
Available destinations for the "App" scheme:
{ platform:iOS Simulator, id:D248DB01-A852-4360-A9C0-2D71AFE478D7, OS:10.3, name:iPad Air }
{ platform:iOS Simulator, id:CE87AF5A-141C-43DA-AE61-AF53593F37F7, OS:10.3, name:iPad Air 2 }
{ platform:iOS Simulator, id:E93B43E4-D24E-4927-B9EE-0375E15DCBD5, OS:10.3, name:iPad Pro (9.7 inch) }
{ platform:iOS Simulator, id:6D71DB17-0FE2-4D5E-BEE6-CC696445BA11, OS:10.3, name:iPad Pro (12.9 inch) }
{ platform:iOS Simulator, id:F7E37EF4-5E72-438A-A286-216C20158B47, OS:10.3, name:iPhone 5 }
{ platform:iOS Simulator, id:24653844-AE99-4B5B-8332-9FFD2208172F, OS:10.3, name:iPhone 5s }
{ platform:iOS Simulator, id:FD2089A4-BF3F-4F98-8E33-B7EFDCFE5B4D, OS:10.3, name:iPhone 6 }
{ platform:iOS Simulator, id:6EF0DFBD-E99E-4EB3-9C51-6E749F41B6E7, OS:10.3, name:iPhone 6 Plus }
{ platform:iOS Simulator, id:846E631C-6285-4B91-9BA6-1AB6E66C88DB, OS:10.3, name:iPhone 6s }
{ platform:iOS Simulator, id:A6943ADC-F6EF-42F6-9958-D966DFC419FC, OS:10.3, name:iPhone 6s Plus }
{ platform:iOS Simulator, id:B41ABED0-7554-438A-97AC-F34943ED4D79, OS:10.3, name:iPhone 7 }
{ platform:iOS Simulator, id:20F1582C-0D19-4F42-9DAD-43138FB923B9, OS:10.3, name:iPhone 7 Plus }
{ platform:iOS Simulator, id:683BB5CA-E0A8-4CE4-B0DD-AED4C4295B90, OS:10.3, name:iPhone SE }
Ineligible destinations for the "App" scheme:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
另一种到达正确目的地的有用方法。
尝试使用双引号而不是单引号,如下所示:
-destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.3"
这为我解决了同样的问题。
单引号和等号分隔符以'key=value'
的形式工作,如:
-destination 'platform=iOS Simulator,OS=12.1,name=iPhone X'
要获取 已知设备列表 使用:
instruments -s devices