【问题标题】:Building a Release build for iOS Simulator?为 iOS 模拟器构建发布版本?
【发布时间】:2020-11-04 17:28:36
【问题描述】:

我正在尝试使用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, OS:14.1, name:iPad Air (4th generation) }
        { platform:iOS Simulator, id:FE1018BD-4128-4E1F-9FE8-FEA4054DD8A8, OS:14.1, name:iPad Pro (9.7-inch) }
        { platform:iOS Simulator, id:88F79AD4-1F96-48B8-897B-D74DB4D6BBC2, OS:14.1, name:iPad Pro (11-inch) (2nd generation) }
        { platform:iOS Simulator, id:54BA4991-5C8D-41E4-9615-AEFDFAF167ED, OS:14.1, name:iPad Pro (12.9-inch) (4th generation) }
        { platform:iOS Simulator, id:2BEF87F9-5F1A-4339-B2C4-B9E634D03DB4, OS:14.1, name:iPhone 8 }
        { platform:iOS Simulator, id:E9CFA859-26B4-4009-A2FB-80161792FA30, OS:14.1, name:iPhone 8 Plus }
        { platform:iOS Simulator, id:DA1BE525-88B4-46F9-BE22-2EE2F46B669E, OS:14.1, name:iPhone 11 }
        { platform:iOS Simulator, id:5C658068-B26A-4265-9D49-D84084BFBB4F, OS:14.1, name:iPhone 11 Pro }
        { platform:iOS Simulator, id:455801A6-11F7-473B-97EB-FFE991C0CF48, OS:14.1, name:iPhone 11 Pro Max }
        { platform:iOS Simulator, id:7FC46741-BE28-4FA1-9921-6D341EAC5A36, OS:14.1, name:iPhone 12 }
        { platform:iOS Simulator, id:F5321E54-6500-4349-9175-C9715F3E230B, OS:14.1, name:iPhone 12 Pro }
        { platform:iOS Simulator, id:B3F46645-5380-4566-9070-DA25817B88D2, OS:14.1, name:iPhone 12 Pro Max }
        { platform:iOS Simulator, id:EBA39463-9D2E-40AB-B2E7-E802D8AE8680, OS:14.1, name:iPhone 12 mini }
        { platform:iOS Simulator, id:16F15877-230B-46FC-A36C-C984DFE12E66, OS:14.1, name:iPhone SE (2nd generation) }
        { platform:iOS Simulator, id:1588FB27-6FD2-4970-9D55-FF430006C766, OS:14.1, 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:

  1. 为什么将 Any iOS Simulator Device 选项列为不合格?

  2. 有没有办法为模拟器创建发布风格的构建?

注意:我也尝试使用 -sdk iphonesimulator 选项而不是 -destination ...,但我的 iOS 应用程序包含一个 WatchKit 应用程序,当它尝试构建该依赖项时会混淆 xcode。

【问题讨论】:

  • “为什么将任何 iOS 模拟器设备选项列为不合格”因为它没有任何意义。没有任何 iOS 模拟器之类的东西。您为特定的模拟设备构建。

标签: ios iphone xcode xcodebuild


【解决方案1】:

啊,想通了。我只是错过了“通用”说明符。所以应该是:

-destination "generic/platform=iOS Simulator"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-29
    • 2020-07-11
    • 1970-01-01
    • 2021-09-06
    • 2016-05-25
    • 1970-01-01
    • 2017-09-16
    • 2013-07-01
    相关资源
    最近更新 更多