【问题标题】:How to install iOS simulators from command line如何从命令行安装 iOS 模拟器
【发布时间】:2016-04-02 07:51:11
【问题描述】:

在 CI 上针对不同版本的 iOS 模拟器/SDK 运行测试是很常见的情况。但是,Xcode 默认只安装最新的 iOS 模拟器。

所以我需要在 CI 环境中从命令行安装其他缺少的 iOS 模拟器。但是我找不到从命令行安装这些模拟器的方法。

【问题讨论】:

  • 安装 Xcode 时,它​​已经安装了 iOS 模拟器。您希望从命令行运行命令吗?
  • 您要创建模拟器设备还是安装旧版模拟器运行时
  • 安装模拟器运行时

标签: ios xcode continuous-integration ios-simulator


【解决方案1】:

可以通过xcode-install完成,使用以下命令

gem install xcode-install
xcversion simulators --install='iOS 9.3'

【讨论】:

  • 如果您需要在 CI 中执行此操作并处理密码提示,请尝试:echo "" | xcversion 模拟器 --install='iOS 10.3.1'
  • 由于某种原因它对我不起作用,我有 Xcode 10.1 和 xcversion 2.5.0。输出为Installing iOS 11.2 Simulator for Xcode 10.1.0... [!] Failed to download iOS 11.2 Simulator.
【解决方案2】:
xcrun simctl create <name> <device type> <runtime>

例如:

xcrun simctl create "ry" "iPhone 11 Pro Max" iOS13.3  

xcrun simctl是控制iOS模拟器的命令工具,就像Android的adb一样。你也可以运行xcrun simctl help,有很多有用的子命令。成功时,这些命令中的大多数以 0 退出;失败时,大多数以非零数字退出。

就个人而言,我有一个article 关于如何从终端使用模拟器。

【讨论】:

    【解决方案3】:

    仅供参考

    所有模拟器都包含 Xcode 应用程序。您可以只安装特定的 Xcode 版本,而不是安装模拟器。 Xcode7.0 有 iOS9 模拟器 Xcode6.4 有 iOS8.x 模拟器

    在您的 CI 测试中,如果您想针对特定模拟器测试您的应用,只需在执行 xcodebuild 命令之前选择 xcode 版本

    xcode-select -switch <path to your xcode app>
    

    这将设置您的默认 xcode 以运行 xcodebuild 然后使用您各自的模拟器运行 xcodebuild。

    xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 
    

    SIMULATOR_OR_IOS_SDK 的地方,给你的模拟器值。

    你可以通过运行找到模拟器值

    xcodebuild -showsdks
    

    这将显示为

    OS X SDKs:
        OS X 10.11                      -sdk macosx10.11
    
    iOS SDKs:
        iOS 9.1                         -sdk iphoneos9.1
    
    iOS Simulator SDKs:
        Simulator - iOS 9.1             -sdk iphonesimulator9.1
    
    tvOS SDKs:
        tvOS 9.0                        -sdk appletvos9.0
    
    tvOS Simulator SDKs:
        Simulator - tvOS 9.0            -sdk appletvsimulator9.0
    
    watchOS SDKs:
        watchOS 2.0                     -sdk watchos2.0
    
    watchOS Simulator SDKs:
        Simulator - watchOS 2.0         -sdk watchsimulator2.0
    

    这样您就可以在任何特定的设备/模拟器/操作系统上构建您的项目。

    希望这会有所帮助:)

    【讨论】:

    • 命令行安装Xcode比较麻烦,而且Xcode.dmg很大。
    • @Quanlong:在 CI 环境中,Xcode 是必须手动安装的软件。您的 CI 构建调用应该使用 xcode 命令行工具 (xcodebuild) 来构建您的应用程序。
    • 是的,但是我们在 CI 上只安装了一个版本的 Xcode。并且某些旧版本的 Xcode 无法安装在较新的 OS X 上。
    • 在这种情况下,我希望您安装最新的 xcode 并像这样手动安装模拟器。 stackoverflow.com/questions/32137582/…
    • 我在 CI 中没有 GUI 界面
    【解决方案4】:
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2015-02-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多