GitHub Actions iOS构建测试报错:no available devices matched the request
解决GitHub Actions中Xcodebuild找不到指定iOS模拟器的问题
核心问题
GitHub Runner上的Xcode 16.1未预装你指定的iPhone 14,OS=17.0模拟器运行时,导致xcodebuild无法匹配目标设备。本地Xcode 16.2能正常运行是因为你手动下载了该版本模拟器,而Runner环境默认只携带Xcode对应版本的最新模拟器(Xcode 16.1对应iOS 18)。
解决方案
方案1:使用Runner预装的模拟器(推荐)
直接修改xcodebuild命令的-destination参数,改用Runner上已存在的设备和OS版本。macos-latest + Xcode 16.1环境下,预装的常用模拟器为iPhone 15,OS=18.0。
修改后的Build and Test步骤:
- name: Build and Test run: | xcodebuild clean test \ -scheme "Declutter" \ -destination "platform=iOS Simulator,name=iPhone 15,OS=18.0" \ -configuration Debug \ CODE_SIGN_IDENTITY="" \ CODE_SIGNING_REQUIRED=NO \ CODE_SIGNING_ALLOWED=NO
方案2:手动安装所需模拟器运行时
如果必须使用iOS 17.0,可在Job中添加步骤安装对应运行时,通过xcversion工具实现:
- name: Install iOS 17.0 Simulator Runtime run: | brew install xcversion xcversion simulators --install="iOS 17.0"
添加完此步骤后,再执行原有的Build and Test命令即可。
辅助验证:查看Runner可用模拟器
若不确定Runner上有哪些模拟器,可添加以下步骤列出所有可用设备:
- name: List Available Simulators run: xcrun simctl list devices
根据输出结果调整-destination参数即可。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

