Xcode9 Server上MacOS UI Tests目标配置问题求助
解决Xcode9 Server上Mac应用UI测试的Destination问题
我之前也踩过Xcode Server运行Mac UI测试的这个坑,结合自己的调试经验,给你几个可行的解决方向:
1. 确认Scheme的共享与目标配置
首先登录到Xcode Server所在的Mac机器上,打开你的项目:
- 进入
Product > Scheme > Manage Schemes,确保你的UI Testsscheme已经勾选了Shared,这样配置才能同步到服务器。 - 编辑该scheme,切换到
Test标签页,检查是否勾选了正确的Mac测试目标,并且这个目标在服务器的环境下是可用的(比如架构匹配)。
2. 修正-destination参数的格式与内容
你之前添加的参数可能因为格式或目标描述不准确被忽略了,试试这些更可靠的写法:
- 使用服务器上Mac设备的名称:
设备名称可以在服务器的Xcode中通过-destination "platform=macOS,name=你的Mac设备名称"Window > Devices and Simulators查看Mac设备的名称。 - 或者直接使用设备UUID:
UUID可以通过终端执行-destination "platform=macOS,id=设备UUID"xcrun simctl list devices(针对模拟器)或者在设备管理器中查看真实Mac的UUID。
注意:尽量用双引号包裹参数,避免解析错误。
3. 检查Xcode Server的权限设置
Xcode Server的运行账号可能缺少UI测试所需的权限:
- 打开Xcode的
Preferences > Server & Bots,选中你的服务器,进入Permissions标签页,确保运行机器人的账号拥有管理员权限,或者至少有访问测试项目和设备的权限。 - 手动登录一次服务器上的该运行账号,打开Xcode并运行一次UI测试,确保系统已经授予Xcode辅助功能权限(如果弹出权限请求,务必允许)。
4. 直接在机器人配置中指定测试目标
别再手动加参数了!有些版本的Xcode Server在机器人的配置页面里,Test板块可以直接选择测试目标:
- 编辑你的机器人,找到
Test部分,看看是否有Destination的选择项,直接选择服务器上的Mac设备,这样Xcode Server会自动生成正确的xcodebuild参数,避免手动添加被忽略的问题。
你遇到的错误提示:
"No destinations were specified with the -destination flag which were valid for the specified scheme 'UI Tests'"
本质就是服务器找不到符合条件的测试目标,以上几个方法应该能帮你定位并解决问题。
内容的提问来源于stack exchange,提问作者Wizard of Kneup
相关产品推荐
相关产品推荐

