如何在build.json中指定Cordova构建目标

时间:2019-10-14 09:49:31

标签: ios xcode cordova

执行cordova build时出现错误。

  

xcodebuild:错误:找不到与提供的目标说明符匹配的目标:

  { platform:iOS Simulator, OS:latest, name:iPhone 11 Pro Max }

由于我的应用仅在iPad上构建,因此我认为我需要为iPad设置构建目标,但是我不确定如何执行此操作。

版本

  • XCode:版本11.1(11A1027)
  • 科尔多瓦:cordova@9.0.0
  • MacOS:10.15 Catalina

我的config.xml具有以下标记,仅用于指定iPad:

    <preference name="target-device" value="tablet" />
    <preference name="deployment-target" value="10.3" />

完整错误:

Reading build config file:
No simulator found for ". Falling back to the default target.
Building for "iPhone 11 Pro Max" Simulator (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max, iPhone-11-Pro-Max).
Building project: /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/Sokketsu.xcworkspace
    Configuration: Debug
    Platform: emulator
    Target: iPhone 11 Pro Max
Running command: xcodebuild -workspace Sokketsu.xcworkspace -scheme Sokketsu -configuration Debug -sdk iphonesimulator -destination platform=iOS Simulator,name=iPhone 11 Pro Max build CONFIGURATION_BUILD_DIR=/Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/emulator SHARED_PRECOMPS_DIR=/Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/sharedpch
Build settings from command line:
    CONFIGURATION_BUILD_DIR = /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/emulator
    SDKROOT = iphonesimulator13.1
    SHARED_PRECOMPS_DIR = /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/sharedpch

xcodebuild: error: Unable to find a destination matching the provided destination specifier:
        { platform:iOS Simulator, OS:latest, name:iPhone 11 Pro Max }

    Available destinations for the "Sokketsu" scheme:
        { platform:iOS Simulator, id:B90FC025-F8EB-40B3-90C5-E9094C0FFD17, OS:13.1, name:iPad Air (3rd generation) }
        { platform:iOS Simulator, id:3131A6AD-3C4E-4CEA-8889-9C7E22EAF816, OS:13.1, name:iPad Pro (9.7-inch) }
        { platform:iOS Simulator, id:A8055BC4-F95C-43FA-8B28-7FACBD3D57B6, OS:13.1, name:iPad Pro (11-inch) }
        { platform:iOS Simulator, id:7FAD7B1C-70DD-407A-AC99-3ACAD2670726, OS:13.1, name:iPad Pro (12.9-inch) (3rd generation) }

    Ineligible destinations for the "Sokketsu" 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 }
xcodebuild: Command failed with exit code 70

2 个答案:

答案 0 :(得分:1)

您可以通过将设备名称作为buildFlag发送来解决此问题

如果您使用的是 cordova ,请使用以下命令

cordova build ios --buildFlag="-destination platform=iOS Simulator,name=iPad Pro (11-inch)"

对我来说,我在 Ionic 项目中使用了它。

ionic cordova build ios -- --buildFlag="-destination platform=iOS Simulator,name=iPad Pro (11-inch)"

您可以从错误中列出的可用目标列表中选择所需的任何设备名称

答案 1 :(得分:0)

您需要将target-device设置为universal,然后在完成后将其更改回Xcode中的平板电脑。

config.xml

<preference name="target-device" value="universal" />

PS:运行cordova build ios命令时,此问题可能始于cordova-ios版本5.0.1。