Appium for Mac 环境搭建
实验环境 :
MacBook Pro (15-inch, 2019) + macOS Catalina 10.15.1
iPhone 11 + iOS 13.2 未越狱
Xcode Version 11.2 (11B52)
实验时间: 2019-11-13
此文档记录环境配置过程的辛酸。
随着时间推移及环境变化,此文档记录的步骤可能不会再成功。
坚持还是能成功的,我这最后一步和真机死活调试不起来,就在准备放弃的时候,竟然成功了!!!!!
安装node
本机版本 v12.9.0
brew install node
通过这种方法安装的node是最新版本
安装Xcode
Xcode Version 11.2 (11B52)
步骤,略
安装依赖库
brew update
brew install libimobiledevice --HEAD
#libimobiledevice中并不包含ipa的安装命令,所以还需要安装
brew install ideviceinstaller
sudo npm install -g ios-deploy --unsafe-perm=true #如果是iOS10以上的系统才需要安装
如果没有安装 libimobiledevice
,会导致Appium无法连接到iOS的设备,所以必须要安装。
手机连接到电脑,查看ideviceinstaller环境是否正常
如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
安装过程如果遇到下图的错误
解决办法: https://github.com/ios-control/ios-deploy/issues/346
如果还是失败,换brew来安装。我用这方式可耻的失败了。
换brew来安装
brew install ios-deploy
安装appium最新版本
注意:要下载dmg,不要下载XXXX-mac.zip,我这zip解压后,APP打不开。
安装JDK
为安卓做准备,如果只是用在iOS端,可以不用考虑安卓的环境。
安装Android SDK
如果只是用在iOS端,可以不用考虑安卓的环境。
很多资料都推荐使用brew安装,但是实践后发现SDK文件为空,所以使用Android studio来安装 下载Android studio
如果打开Android studio报错,直接cancel到下一步即可。
配置Android环境变量
在~/.zshrc或者~/.bash_profile文件中添加path
export ANDROID_HOME=~/Library/Android/sdk/
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home #jdk安装路径
export PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
注意 JAVA_HOME的实际路径,去自己本地路径查看确认。
安装appium-doctor
npm install appium-doctor -g
安装后执行appium-doctor --ios
可以查看与iOS相关配置是否完整,
或者 appium-doctor
指令,查看包含安卓的相关配置是否完整。
如果有哪一项是打叉的,则进行安装就可以了。
按上图提示,挨个解决
安装opencv4nodejs时依赖cmake
安装cmake
brew install cmake
安装opencv4nodejs
npm i -g opencv4nodejs
安装ffmpeg
下载地址 https://ffmpeg.zeranoe.com/
下载完成后,将二进制可执行文件拷贝到/usr/local/bin
目录
安装mjpeg-consumer
npm install mjpeg-consumer -g
安装idb
brew tap facebook/fb
brew install idb-companion
pip3.7 install fb-idb
注意: 1、安装过程可能需要配置openssl,需要的话,在~/.zshrc或者~/.bash_profile文件中添加配置信息
# openssl
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
2、pip3.7是我本机的文件名,要看自己机器实际名称是什么,在目录/usr/local/bin/
里确认
安装applesimutils
brew tap wix/brew
brew install applesimutils
安装bundletool.jar
brew install bundletool
更新Appium中的WebDriverAgent
1、到WebDriverAgent下载最新版本的WebDriverAgent
2、进入下载后的WebDriverAgent文件夹
执行
./Scripts/bootstrap.sh
3、直接用Xcode打开WebDriverAgent.xcodepro文件
4、配置调试证书
略
5、运行WebDriverAgent
如果遇到下面问题
解决方案:
1、打开WebDriverAgent.xcodeproj
2、选择 'Targets' -> 'WebDriverAgentRunner'
3、打开 'Build Phases' -> 'Copy frameworks'
4、点击 '+' -> 添加 'RoutingHTTPServer'
成功运行后
在浏览器内输入控制台打印的地址 http://localhost:8100/status
真机Test
如果遇到下面的问题
The test runner encountered an error (Failed to establish communication with the test runner. (Underlying error: Unable to connect to test manager on 00008030-000C2D042230802E. (Underlying error: Could not connect to the device.)))
解决方案:
https://github.com/appium/appium/issues/13017
重启手机
重启电脑
打开appium desktop
!!!!!! 各种版本的appium试过了,各种错误,各种unknown,反复尝试,只有appium 1.15.0可以用 !!!!!
上图配置项参考:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
编译问题
WebDriverAgent工程的路径在这里:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
不同版本自己去Applications目录里一路找下去。
打开工程,自行解决证书问题,编译通过即可。
问题1
拉起了手机里的APP,却卡死在这里
解决: https://github.com/appium/appium/issues/9645
问题2
[POST http://localhost:8100/session]
https://github.com/appium/appium/issues/9482 参考这个,我这并没有生效,放弃这个方案,换了个1.15.0版本的appium解决。
问题3
Safari浏览器里看不到inspector http://localhost:8100/inspector 报错
Xcode11 with ios 13 don`t open inspector with appium-desktop. https://github.com/appium/appium-desktop/issues/1096
我的解决办法: 换了个1.15.0版本的appium解决
问题4
Getting Original error: Unable to start WebDriverAgent session because of xcodebuild failure: A new session could not be created. Details: ‘capabilities’ is mandatory to create a new session
同类问题: https://github.com/appium/appium-desktop/issues/1104
我的解决办法: 换了个1.15.0版本的appium解决
问题XXXX
换appium版本吧
结果
随便挑一个手机里的APP,试试这个框架的可用性。 终于见到这个界面了,泪奔
非常卡!!!!
inspector几分钟不刷新,手机APP也跟死了一样