開始之前,吐槽一下,配置IOS環境真的是太難搞了,整了兩天,試了各種可能,最開始整的appium1.14.0版本,各種失敗,各種問題,最后嘗試appium1.15.1,問題少了點,但是在配置webdriveragent又是各種坑,還好最后都解決了。為了你不再采坑,特此將安裝過程中整理的都分享給你,以及解決辦法。
appium1.15.1 desktop版本已經下載了,去這里拿吧。
https://www.cnblogs.com/victorm/p/12778422.html
一. 基礎環境安裝
開始安裝之前先把jdk安裝,並配置好環境變量。這個自行解決。
1、安裝homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
或者采用下面的方式安裝國內源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2、安裝node.js、npm、cnpm
注意不要下載node安裝包去安裝,用brew的方式安裝長期支持版本,如果是通過安裝包安裝的,后續你會遇到非常頭疼的權限問題。
同時appium官網也說了不要以sudo方式安裝
brew install node@12 -- 以這種方式安裝是普通用戶安裝方式
node -v # 查看node版本 v12.16.2, 這是LTS版本
因為npm直接安裝會比較慢,國內可以通過cnpm來提高速度,但是經過嘗試,會有問題,有可能是我安裝過程中整理亂了,你可以嘗試一下。
最后我是通過npm直接來安裝的,也不會很慢。反正appium-desktop 版本也給你了。
npm -g install cnpm
# 或者
npm install cnpm -g --registry=https://registry.npm.taobao.org # 官方推薦安裝方法
3、因為國外源特慢了,替換為清華大學開源軟件鏡像站
參考:https://mirror.tuna.tsinghua.edu.cn/help/homebrew/
# brew 程序本身,Homebrew/Linuxbrew 相同
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
# 以下針對 mac OS 系統上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
git -C "$(brew --repo homebrew/cask-fonts)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-fonts.git
git -C "$(brew --repo homebrew/cask-drivers)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-drivers.git
# 以下針對 Linux 系統上的 Linuxbrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/linuxbrew-core.git
# 更換后測試工作是否正常
brew update
4、安裝:libimobiledevice、carthage、xcpretty
brew install libimobiledevice --HEAD # 真機測試必須安裝,否則比如 idevice_id -l等命令是執行不了的
brew install carthage
gem install xcpretty
5、安裝:deploy
npm install -g ios-deploy
6、安裝:appium server端
#cnpm是國內
cnpm -g install appium@1.15.1
#不行的話則使用
npm -g install appium@1.15.1 #還是推薦用這種方式安裝,雖然慢點但是不易出錯
7、安裝:appium-desktop - 可選的,用網盤里的包直接裝就行
8、安裝:appium doctor
npm install -g appium-doctor
9、運行appium-doctor檢測環境配置
appium-doctor --ios
10、安裝:Appium-Python-Client
pip install Appium-Python-Client
二. 配置webdriveragent
吐槽:最開始安裝了appium Server后,就自帶appium-webdriveragent,我是在這里直接配置的,然后一路的不順利,也不順心,最后查看官網,想着它既然是個組件,能不能獨立運行,然后就從appium官網克隆了一個到本地,修改,最后配置成功了,也忒順利,哈哈,完事后直接用配置好的替換掉appium自帶的appium-webdriveragent。
1、先克隆一個到自己本地
cd 到自己的一個任意目錄
git clone https://github.com/appium/WebDriverAgent.git
想着有些人沒裝git,在網盤里也傳了一份,見上面的連接 WebDriverAgent-master.zip
2、配置webdriveragent依賴項
#1. 進入上面克隆的webdriveragent的目錄
#下面是我的路徑
cd /Users/qiaoersun/Downloads/WebDriverAgent-master
#2. 執行下面的命令配置webdriveragent依賴項
./Scripts/bootstrap.sh
3、在xcode里配置 webdriveragent
3.1、配置WebDriverAgentLib
在/Users/qiaoersun/Downloads/WebDriverAgent-master
目錄下面以xcode方式打開WebDriverAgent.xcodeproj
注意注意:側邊欄一定要打開,配置的是TARGETS里的哦,最開始我自己就弄錯了
Team之前已經添加過個人賬號了,這里就不添加了,沒有添加過的時候,選擇 add account一步步添加,添加完成后選擇它。
添加之后的賬戶可以在 Xcode->perferences->account,出現下面的界面,能看到自己的賬號信息
3.2、配置WebDriverAgentRunner
(1)簽名設置為自動加簽
上面的報錯,解決:請進入WebDriverAgentRunner -> Build Settings設置中,找到Packaging中的選項,將其內容修改為唯一識別的字符串就不報錯了,如下圖所示:
(2)編譯 WebDriverAgentRunner
接下來選擇 iOS 設備,通過 USB 連接 Mac 和 iPhone 后,Xcode 中點擊 1,下 拉框里選擇你的設備
點擊 1,下拉框里選擇 WebDriverAgentRunner
點擊 2,執行編譯,編譯成功會提示 Build Succeeded
(3)運行test
這是test模式,不能run,即一定要執行product>Test 才可以校驗第三步),
運行后提示編譯成功,這時候會報錯,去IOS設備:
設置->通用->描述文件與設備管理,操作信任,然后你就會在IOS設備上看見 WebDriverAgent的icon啦。
3.3 WDA安裝校驗(前提是project>Test 運行的,如上圖所示)
(1) 瀏覽器輸入url
復制url到輸入在瀏覽器中,就會發現網頁上顯示出你的手機界,但是有些iPhone,據說是國產的原因,直接使用ip不能連接手機,需要進行端口轉發(在終端執行 “iproxy 8300 8100” 回車后在瀏覽器中輸入http://localhost:8300/出現json字符串即表示成功,同時說明WDA安裝成功了)。
#開啟iproxy 進行端口轉發
iproxy 8300 8100
(2)地址后面添加/status可以查看當前設備的狀態,獲取與wda通信session id
(3)地址后添加/inspector即可打開WDA 的inspector (非Appium inspector),查看元素:http://localhost:8300/inspector ,點擊下圖中“home”后手機屏幕會切回到主屏幕。至此安裝WDA以及連接IOS手機成功!!---這是網上的資料
我出來的是下面的界面,跟上面不一樣
三. 替換appium1.15.1自帶的WebDreiverAgent
雖然WebDreiverAgent是可以獨立運行的,為了方便管理和統一,這里用已經配置好的WebDreiverAgent替換調自帶的。
注意:把克隆的版本文件夾名字重命名為:appium-webdriveragent, 要跟appium自帶的名字一樣。
進入 /usr/local/lib/node_modules/appium/node_modules目錄下,直接把已經配置好的文件全部拷貝到這里,進行替換。
至此,心情算是舒暢多了。也希望能為你節省寫時間,祝好。