Appium 遇到 Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65 的解決方法


安裝依賴:
Appium iOS真機測試依賴於中心第三方軟件套件:libimobiledevice, 用homebrew很容易安裝

brew install libimobiledevice

除了依賴libimobiledevice以外, Appium支持真機在iOS 9.3以上版本使用Xcode 8+ 還要依賴於ios-deploy,通過npm和homebrew很容易安裝:

npm install -g ios-deploy

brew install ios-deploy

(對於hybrid或者web測試, 還需要遵循ios-webkit-debug-proxy設置指令)
XCUITest driver工作方式是在真機上安裝一個名為WebDriverAgent-Runner的助手應用程序, 通過該應用程序,測試應用程序是自動化的。雖然這在理論上是簡單的,但是開發和測試的代碼簽名和配置文件的環節可能會讓人有點頭疼。
 

基本(自動)配置:
使用自動配置策略最簡單的方法是用Appium的XCUITest Support在IOS真機上獲取啟動和運行,有2種方式:
* 使用xcodeOrgId和xcodeSigningId這2個desired capabilities:
    {
      "xcodeOrgId": "<Team ID>",
      "xcodeSigningId": "iPhone Developer"
    }
* 在你的文件系統的某個地方創建一個.xcconfig文件並添加以下內容到文件中:
    DEVELOPMENT_TEAM = <Team ID>
    CODE_SIGN_IDENTITY = iPhone Developer

 

在這兩種情況下,Team ID都是由Apple生成的一個獨特的10個字符的字符串,它被分配給您的團隊。

可以用你的開發者賬號找到你的Team ID. 登錄你的開發者賬號developer.apple.com/account, 在側欄中點擊Membership. 你的Team ID會在團隊名稱下面的Membership Information部分顯示.

也可以在keychain里面找到你的iphone開發者證書,team ID就列在"Organizational Unit"字段下。

注意:這些互斥策略;要么使用xcodeConfigFile,要么用xcodeOrgId和xcodeSigningId組合.

一旦配置成功,要開始測試只不過是在desired capability指定為一個真機的udid問題

 

 

 

如果這個不起作用,通常會在Appium server日志中顯現出類似如下錯誤:

XCUITest xcodebuild exited with code '65' and signal 'null'.

這一般意味着必要的簽名未設置正確,通過手工配置來做

基本(手工)配置
WebDriverAgent目錄:
/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
* 找到appium的安裝盤:
    $ which appium
    /usr/local/n/versions/node/10.4.0/bin/appium 用n管理器安裝的node指向
    ->/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/build/lib/main.js
* 進入appium安裝盤:/path/where/installed/bin/appium, 在以下路徑下找到WebDriverAgent
    /usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

我的appium安裝盤地址:

/Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent

 

 


* 打開terminal到上面的目錄下, 執行以下命令來配置項目:
    $ mkdir -p Resources/WebDriverAgent.bundle
    $ ./Scripts/bootstrap.sh -d
用Xcode打開WebDriverAgent.xcodeproj
以下2個目標在"General"選項卡下都選"Automatically manage signing"並選擇你的Development Team,應該會自動選擇Signing Ceritificate.
如下圖所示: WebDriverAgentLib、WebDriverAgentRunner

 

 

如果Signing Provisioning profile失敗則需要先去Build Settings選項卡下面把bundle Id修改成xcode接受的bundle id

 

 

返回到WebDriverAgentRunner 目標下的"General" 選項卡, 應該可以看到創建了一個provisioning profile如下圖:

 

 

 

 執行成功后手機上會有一個webDriveragent

 

參考:

https://testerhome.com/topics/8074

https://blog.csdn.net/yinshuilan/article/details/80626314

https://testerhome.com/topics/8533

https://testerhome.com/topics/12512


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM