Appium的iOS環境搭建
操作系統的名稱:Mac OS X
操作系統的版本:10.13.3
xcode 版本:9.2
java 版本:java8_161
appium destop版本:1.7.3
接下來我們開始踏上搭建Appium+java+ios之路,本文只說個大概,畢竟本機已經裝過了,我就不在折騰了,耗費好幾天時間才搞定。
一:安裝JAVA。配置環境變量
可以在/etc/profile裏配置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
再輸入命名 source /etc/profile 使生效
二:安裝Appium
1.作者系統安裝的Appium destop版本為:1.7.2,個人覺得destop 版本比較方便。
三:安裝Homebrew
先來看下Homebrew是個什麽東東,Homebrew就相當於linux的yum. 官網https://brew.sh/index_zh-cn.html,Homebrew 能幹什麽?使用 Homebrew 安裝 Apple 沒有預裝但 你需要的東西。Homebrew 會將軟件包安裝到獨立目錄,並將其文件軟鏈接至 /usr/local 。Homebrew 不會將文件安裝到它本身目錄之外,所以您可將 Homebrew 安裝到任意位置。輕松創建你自己的 Homebrew 包。完全基於 git 和 ruby,所以自由修改的同時你仍可以輕松撤銷你的變更或與上遊更新合並。Homebrew 的配方都是簡單的 Ruby 腳本,Homebrew 使 macOS 更完整。使用 gem 來安裝 gems、用 brew 來安裝那些依賴包。更多介紹請上官網。
1.安裝:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.檢查是否安裝成功:brew -v,作者系統安裝的版本號為:1.3.2
四:安裝Node (Appium 需要使用Node 服務端)
1.安裝:終端執行:brew install node。
2.檢查是否安裝成功:終端輸入node -v,如果顯示版本號說明安裝成功,作者安裝版本為:v6.11.3
五:安裝ideviceinstaller
1.說明:與iOS設備通信的跨平臺庫和工具,用於給iOS設備安裝卸載應用或者備份應用。該工具是基於libmobiledevice的,因此首先要完成 libmobiledevice的編譯安裝。
2.終端執行:brew install ideviceinstaller
3.如果步驟2執行報錯,有可能是沒有安裝carthage,終端執行brew install carthage
4.檢查是否安裝成功,如出現下圖則表示安裝成功。
ideviceinstaller 的用處
1. 命令 idevice_id -l 可以獲取UDID
2. 命名 ideviceinstaller -l 可以獲取bundle id
Carthage 的用處
發現在webdriver agent 裏的framework裏需要用到Carthage 裏的一個包
六:安裝 appium-doctor
npm install -g appium-doctor
appium-doctor檢查如下,打勾就是檢查正常,打叉就是不正常。我這裏有打叉的,是因為我沒有配置android 環境,對我Ios 的沒有影響
七:安裝xcode
1.安裝:可以AppStore中打開並下載
2.檢查是否安裝成功:終端執行xcodebuild -version,作者安裝版本為:Xcode 9.2
八:安裝Xcode Command Line Tools
1.Xcode安裝完成後啟動終端,在終端輸入xcode-select --install
九:手機端安裝WebDriverAgent
新版本的xcode 做ios 測試需要使用 webDriverAgent, 簡單解釋,測試前需要使用xcode往真機上安裝簽名證書,測試時可以看到會先往測試設備上安裝一個webDriverAgent 的APP 然後通過這個app 來測試被測app。具體大家可以搜索一下webdriveragent 來了解。
1.安裝ios(webdriver)步驟
安裝appium-xcuitest-driver
npm install -g ios-deploy (ios-deploy 在真機測試時需要用到)
cd /usr/local/lib/node_modules/appium
npm uninstall appium-xcuitest-driver
npm install [email protected]
註:appium自帶的appium-xcuitest-driver版本過低,需重新安裝
2、配置WebDriverAgent環境
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh -d (此步驟是為了重新編譯webDriverAgent 文件,並下載相應的依賴包,查看問題一)
3.編譯WebDriverAgent,雙擊 WebDriverAgent.xcodeproj或者執行如下命令, 系統自動會用Xcode打開
Open /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj
網上關於WebDriverAgent 編譯過程一般寫的比較復雜,我這裏寫個簡單點的,兩個步驟供大家參考,先看下面這兩個圖
1. 左邊列出來工程裏的TARGETS文件每個都要做右邊的操作,操作是在Genaral tab裏配置你的apple id,在Build settings 頁裏把Bundle id 改成唯一的。
2.在WebDriverAgentRunner -> Build Phases 裏加上下面兩個framework
下面的圖來源自網絡,大家可以參考著配上面兩個步驟的內容,多的部分不用看
(1). 編譯WebDriverAgentLib
(2).編譯WebDriverAgentRunner
(3).在終終端輸入:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination ‘id=udid‘ test,待執行完成後手機端會安裝WebDriverAgent。
問題一:WebDriverAgent 編譯報錯,無法找到RoutingHttpServer.h 頭文件
原因:在XCODE 的WebDriverAgent工程的 WebDriverAgentRunner 頁面的 Build Phase tab上的copy frameworks選項上,需要配置兩個framework, 其中一個是carthage 的,這個沒有配置好
解決辦法:1. 先裝carthage
2. 再編譯一次 sh ./Scripts/bootstrap.sh -d
問題二:Could not determine Xcode version:Could not get Xcode version. /Library/Developer/Info.plist does not exist on disk.
原因:Xcode 的一個什麽路徑配置要改,修改命令如下
解決辦法:sudo xcode-select --switch /Applications/Xcode.app
Appium的iOS環境搭建