加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 无法通过Jenkins上的xcodebuild从命令行执行测试

发布时间:2020-12-14 19:08:04 所属栏目:百科 来源:网络整理
导读:我正在使用以下命令来执行测试: xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' 这在本地工作正常,但是当我在Jenkins上尝试它时,它失败并出现以下错误: xcodebuild test -wo
我正在使用以下命令来执行测试:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1'

这在本地工作正常,但是当我在Jenkins上尝试它时,它失败并出现以下错误:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination ‘platform=iOS Simulator,OS=8.1’

xcodebuild: error: Unable to find a destination matching the provided destination
specifier: { platform:iOS Simulator,OS:8.1,name:iPhone 6 }

The requested device could not be found because no available devices
matched the request.

Available destinations for the “MyScheme” scheme:

Build step
‘Execute shell’ marked build as failure

Finished: FAILURE

所以我在Jenkins上启动了Xcode GUI来检查iPhone 6模拟器是否存在,它就在那里.另一个有趣的事情是当我运行相同的xcodebuild命令而没有在本地指定目标的名称和操作系统时,我得到所有可用模拟器的列表,如下所示:

Available destinations for the “MyScheme” scheme: { platform:iOS
Simulator,id:683233C4-EC2B-48A3-826B-10EF62A875CD,name:iPad
2 } { platform:iOS Simulator,
id:6358A6F5-2FD0-4377-BD32-0A2C3329276D,name:iPad Air } {
platform:iOS Simulator,id:224533ED-94DA-46CC-B1DB-1781A1C80710,
OS:8.1,name:iPad Retina } { platform:iOS Simulator,
id:D114BC7E-A913-4063-A349-C119BAFC06DA,name:iPhone 4s } {
platform:iOS Simulator,id:7AF6D6F4-C6BC-4A47-B83C-3A4B43ABE0DD,name:iPhone 5 } { platform:iOS Simulator,
id:BE82D607-466A-43E5-863D-6A05F217C117,name:iPhone 5s } {
platform:iOS Simulator,id:0AFCC9AB-7C59-48C7-9BFB-FBF4865B7A63,name:iPhone 6 Plus } { platform:iOS Simulator,
id:D183FF05-3023-4FB5-BEA0-290EA881040A,name:iPhone 6 } {
platform:iOS Simulator,id:26038DBD-791C-421E-99F4-9153CA726A2F,name:Resizable iPad } { platform:iOS Simulator,
id:31B2F0AE-3547-4189-A561-CD2088F6C645,name:Resizable iPhone
}

但是当我在Jenkins上做同样的事情时,这个列表是空的.

我在本地和Jenkins上使用Xcode版本6.1(6A1052d),我的方案是正确共享的,所以当我在Jenkins上启动它时,我可以在GUI中看到它们.我不确定它是否相关,但我正在使用工作区清理插件,我在构建Jenkins之前删除了所有派生数据.

编辑:
我发现当使用generic /我在目标值前面加上Jenkins上的正确模拟器列表时,它仍然会抱怨我找不到要运行的模拟器,即使我使用的是在列表中:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme
-destination ‘generic/platform=iOS Simulator,OS=8.1’

xcodebuild: error: Unable to find a destination matching the provided
destination specifier: { platform:iOS Simulator,name:iPhone
6 }

The requested device could not be found because no available devices
matched the request.

Available destinations for the “MyScheme” scheme: {
platform:iOS Simulator,id:20D0A659-A25A-40E1-9C11-FC6ECA004012,name:iPad 2 } { platform:iOS Simulator,
id:7B5DF104-BE34-415F-8818-3907B6CB9C63,id:2DDF024E-811D-4D93-BD8E-EF34BFC9D8CA,
id:FFE95D35-B9DD-449E-83D0-50777BF5B783,id:EF5A0D8A-6A1F-492C-B451-8F3B8B5EC5EE,
id:A1FCF8DA-BD9F-4ABC-8E0A-4B8547362274,id:1B75E350-7FC8-4407-8116-F3674F3AC187,
id:694CAA87-765D-4FDF-8B27-75E5B537F48E,id:FF5588C0-14B5-4303-A2AC-9ACF63B1852C,
id:E402C9C9-97BA-4909-96B3-3D3C7F6CCC3B,name:Resizable iPhone
}

Build step ‘Execute shell’ marked build as failure

Finished: FAILURE

解决方法

事实证明Jenkins正在使用没有足够权限的用户.当我创建另一份工作并尝试签署存档时,我想出来了.默认情况下,Jenkins使用’jenkins’用户来做东西,但是如果你和其他用户一起ssh或屏幕分享到你的构建服务器,那么你就搞错了.我决定删除我的Jenkins守护进程,而是使用 JenkinsApp.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读