1. 程式人生 > >Appium的iOS環境搭建

Appium的iOS環境搭建

trap 接下來 ase oot htm web per 雙擊 https

操作系統的名稱: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環境搭建