升級(jí)Xcode 8 后如何在IOS真機(jī)上應(yīng)用Appium

1.Appium支持在真機(jī)上進(jìn)行測(cè)試,前提需要進(jìn)行如下支持:

 (1) 一個(gè)Apple ID和一個(gè)有效的開發(fā)者賬號(hào),具備分發(fā)證書和配置權(quán)限。
 (2)iPad  或者 iPhone ,確保已經(jīng)在Xcode中安裝了開發(fā)權(quán)限。
 (3)一個(gè)ipa文件或者源代碼或者.app文件
 (4) Xcode 和 Xcode 命令行開發(fā)工具
 (5)Mac 上 ideviceinstaller 、 ios-deploy、libimobiledevice 已安裝

2.測(cè)試ideviceinstaller 是否安裝成功
通過 ideviceinstaller -u udid -i [ipa/app路徑] 在iOS設(shè)備上安裝app,如果成功,說明ideviceinstaller 安裝成功。

3.Xcode8 移除了UI Automation,Appium 依賴它執(zhí)行iOS自動(dòng)化。在beta版1.6的Appium中實(shí)現(xiàn)了新的自動(dòng)化框架 Xcuitest,所以需要執(zhí)行npm uninstall -g appium npm install -g appium@1.6.4-beta安裝最新的Appium 服務(wù)端。

4.安裝app-inspector
npm install app-inspector -g

5.測(cè)試代碼

 File appDir = new File(System.getProperty("user.dir")+"/apps");
 File app = new File(appDir, "xiaoqin.ipa");
 String udid = "*******";
 DesiredCapabilities capabilities = new DesiredCapabilities();
 capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
 capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.3.5");
 capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "***");
 capabilities.setCapability(MobileCapabilityType.UDID, udid);
 capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());

 //xcode 8 中實(shí)現(xiàn)了新的自動(dòng)化系統(tǒng),不再支持uiautomaton
 capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");  

 URL url =newURL("http://127.0.0.1:4723/wd/hub");
 driver = new IOSDriver<MobileElement>(url, capabilities);

6.遇到問題及解決方案

(1)“Could not connect to lockdownd” 可以通過 sudo chmod -R 777 /var/db/lockdown/ 修改文件夾權(quán)限。如果已經(jīng)修改了文件權(quán)限,仍無法解決,可以嘗試重新安裝ideviceinstaller,libimobiledevice。如下:
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller

(2)執(zhí)行testcase的時(shí)候提示 “bin/bash Scripts/bootstrap.sh -d' exited with code 1”,在 /.npm-packages/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 路徑下執(zhí)行 bin/bash Scripts/bootstrap.sh -d 提示“ Please make sure that you have Carthage installed (https://github.com/Carthage/Carthage), We are expecting that carthage installed in /usr/local/bin/” ,執(zhí)行 brew install carthage 問題解決。

(3)修改了上述問題后,執(zhí)行時(shí)會(huì)報(bào)錯(cuò) /Library/Developer/Xcode/DerivedData/WebDriverAgent-asdmomtkchbvroehfoovpsuuovoh/Build/Products/Debug-iphoneos/WebDriverAgentRunner-Runner.app 找不到。 在 /.npm-packages/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 下找到 /WebDriverAgent 項(xiàng)目,用Xcode打開對(duì)WebDriverAgentLib 和 WebDriverAgentRunner 進(jìn)行簽名。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容