簡體   English   中英

無法通過Jenkins上的xcodebuild從命令行執行測試

[英]Unable to execute tests from command line via xcodebuild on Jenkins

我正在使用以下命令來執行測試:

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模擬器,名稱= iPhone 6,OS = 8.1'

xcodebuild:錯誤:無法找到與提供的目標說明符匹配的目標:{platform:iOS Simulator,OS:8.1,name:iPhone 6}

找不到請求的設備,因為沒有可用的設備與請求匹配。

“MyScheme”方案的可用目的地:

構建步驟'執行shell'將構建標記為失敗

完成:失敗

所以我在Jenkins上啟動了Xcode GUI來檢查iPhone 6模擬器是否存在,它就在那里。 另一個有趣的事情是當我運行相同的xcodebuild命令而沒有在本地指定目標的名稱和操作系統時,我得到所有可用模擬器的列表,如下所示:

“MyScheme”方案的可用目的地:{platform:iOS Simulator,id:683233C4-EC2B-48A3-826B-10EF62A875CD,OS:8.1,name:iPad 2} {platform:iOS Simulator,id:6358A6F5-2FD0-4377- BD32-0A2C3329276D,OS:8.1,名稱:iPad Air} {platform:iOS Simulator,id:224533ED-94DA-46CC-B1DB-1781A1C80710,OS:8.1,名稱:iPad Retina} {platform:iOS Simulator,id:D114BC7E- A913-4063-A349-C119BAFC06DA,操作系統:8.1,名稱:iPhone 4s} {platform:iOS Simulator,id:7AF6D6F4-C6BC-4A47-B83C-3A4B43ABE0DD,OS:8.1,name:iPhone 5} {platform:iOS Simulator, id:BE82D607-466A-43E5-863D-6A05F217C117,OS:8.1,名稱:iPhone 5s} {platform:iOS Simulator,id:0AFCC9AB-7C59-48C7-9BFB-FBF4865B7A63,OS:8.1,name:iPhone 6 Plus} {平台:iOS模擬器,ID:D183FF05-3023-4FB5-BEA0-290EA881040A,操作系統:8.1,名稱:iPhone 6} {平台:iOS模擬器,id:26038DBD-791C-421E-99F4-9153CA726A2F,操作系統:8.1,名稱:可調整大小的iPad} {平台:iOS模擬器,ID:31B2F0AE-3547-4189-A561-CD2088F6C645,操作系統:8.1,名稱:可調整大小的iPhone}

但是當我在Jenkins上做同樣的事情時,這個列表是空的。

我在本地和Jenkins上使用Xcode版本6.1(6A1052d),我的方案是正確共享的,所以當我在Jenkins上啟動時,我可以在GUI中看到它們。 我不確定它是否相關,但我正在使用工作區清理插件,我在構建Jenkins之前刪除了所有派生數據。

編輯:我發現當使用generic /我的目標值前置時,我會在Jenkins上獲得正確的模擬器列表,它仍然會抱怨我找不到要運行的模擬器,即使我使用的是在列表中:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination'generic / platform = iOS模擬器,名稱= iPhone 6,OS = 8.1'

xcodebuild:錯誤:無法找到與提供的目標說明符匹配的目標:{platform:iOS Simulator,OS:8.1,name:iPhone 6}

找不到請求的設備,因為沒有可用的設備與請求匹配。

“MyScheme”方案的可用目的地:{platform:iOS Simulator,id:20D0A659-A25A-40E1-9C11-FC6ECA004012,OS:8.1,name:iPad 2} {platform:iOS Simulator,id:7B5DF104-BE34-415F- 8818-3907B6CB9C63,操作系統:8.1,名稱:iPad Air} {平台:iOS模擬器,id:2DDF024E-811D-4D93-BD8E-EF34BFC9D8CA,操作系統:8.1,名稱:iPad Retina} {platform:iOS模擬器,id:FFE95D35- B9DD-449E-83D0-50777BF5B783,操作系統:8.1,名稱:iPhone 4s} {平台:iOS模擬器,id:EF5A0D8A-6A1F-492C-B451-8F3B8B5EC5EE,操作系統:8.1,名稱:iPhone 5} {platform:iOS模擬器, id:A1FCF8DA-BD9F-4ABC-8E0A-4B8547362274,OS:8.1,name:iPhone 5s} {platform:iOS Simulator,id:1B75E350-7FC8-4407-8116-F3674F3AC187,OS:8.1,name:iPhone 6 Plus} {平台:iOS模擬器,id:694CAA87-765D-4FDF-8B27-75E5B537F48E,操作系統:8.1,名稱:iPhone 6} {平台:iOS模擬器,id:FF5588C0-14B5-4303-A2AC-9ACF63B1852C,操作系統:8.1,名稱:可調整大小的iPad} {平台:iOS模擬器,ID:E402C9C9-97BA-4909-96B3-3D3C7F6CCC3B,操作系統:8.1,名稱:可調整大小的iPhone}

構建步驟'執行shell'將構建標記為失敗

完成:失敗

事實證明Jenkins正在使用沒有足夠權限的用戶。 當我創建另一份工作並嘗試簽署存檔時,我想出來了。 默認情況下,Jenkins使用'jenkins'用戶來做東西,但是如果你和其他用戶一起ssh或屏幕分享到你的構建服務器,那么你就搞錯了。 我決定刪除我的Jenkins守護進程,而是使用JenkinsApp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM