环境:(对于具体版本没有必要完全一致)
xcode:Version 13.1 (13A1030d)
appium desktop版本:v1.22.3-4
node版本:v12.22.6
iOS真机测试的坑实在太多,需要多一些耐心
备注:以下环境安装过程中,如果出现某文件无权限,可以使用以下命令,修改文件权限
1,相关工具
1、安装homebrew,使用gitee国内镜像会很快
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2,ideviceinstaller(可选):appium运行在真机上,需要知道目标app的bundleId。可用此工具查看。安装命令:brew install ideviceinstaller。 也可通过app代码查看得到。
brew install ideviceinstaller
3,libimobiledevice:使用ios真机跑自动化,需要安装idevice_id。 安装命令:brew install libimobiledevice --HEAD 。否则,appium服务器会报错:The 'idevice_id' program is not installed. If you are running a real device test it is necessary.
brew install libimobiledevice --HEAD
3、安装carthage
brew install carthage
4、安装node
去官方的地址https://nodejs.org/en/download/,下载文件进行安装
6、安装ios-deploy(真机测试必备)
npm install -g ios-deploy
7、安装xcpretty 如果安装出错,切换个目录再试试
gem install xcpretty
8,安装appium-doctor检查appium环境。(这玩意可以最后在安装,主要是为了检查环境使用),标红的地方需要保证都安装上。
nmp install -g appium-doctor
2、通过xcode编译 WebDriverAgen
本文WebDriverAgent 是通过单独下载WebDriverAgent-4.4.3
https://github.com/appium/WebDriverAgent/releases/tag/v4.4.3
首先要执行如下命令
npm install
特殊说明
经过测试 只要添加好团队,选择团队team即可,其他步骤也可以忽略哈
第一步 首先修改 WebDriverAgentLib文件的 general
图1.1
第二步 修改 WebDriverAgentLib文件的 Signing&Capabilities
图1.2
在操作team这个步骤时
如果没有账号,需要添加好账号,并申请权限
通过 manage Certificates添加开发者证书
图1.3
本环节要确保添加好team后,确保页面上没有任何错误:如果有错误,则无法编译成功,会出现错误,如下图
图1.4
第三步 修改 WebDriverAgentLib文件的 Build Settings 设置支持的最低iOS版本,以及修改 Bundle identifier
图1.5
图1.6
第四步 修改WebDriverAgentRunner文件的 Signing&Capabilities
图1.7
第五步 修改WebDriverAgentRunner文件的 Build Settings
第六步 配置IntegrationApp的general和 Signing&Capabilities
第七步 点击左上角的执行按钮,选择自己的真机,出现 Build Succeeded提示,则部署完成
不出意外的话,手机上会显示已经安装的app,并且弹出如下页面。
第八步:开启iphone手机开发者模式,进入开发者开启UI Automation选择,如下图
第九步 建立服务WebDriverAgent
1,可以先关掉xcode了。确保手机和MAC都在同一个wifi下,且都能连接外网
获取udid:如下图
可以通过itools,爱思助手等
获取到udid后,使用如下命令,其中xxxx需要替换为你手机的udid
使用命令窗口进入到 WebDriverAgent目录,也就是xcode
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=xxxxxxxxxxxxxx' test
执行后,等待一会则会出现如下信息标识成功
2、确认设备监听成功 在手机设置->Developer 中,打开Enable UI Automation
3.从上图中,可以看到 ServerURLHere->http://169.254.48.135:8100<-ServerURLHere
4.输入上面的连接http://169.254.163.103:8100/status,看到返回一个json串,则证明监听成功
5.如果无法打开页面
使用iproxy 8100 8100,强行把设备端口号绑定在8100端口,此时,你需要使用http://127.0.0.1:8100/status 网址打开网站,看看能否抓到设备信息
需要注意的是:
如果使用了iproxy进行端口强绑,后续在设置desired_caps时,需要额外增加一个参数
6,安装appium,启动
本文下载的是桌面版本如下,下载对应的版本直接安装就行
https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4
7,安装appium-inspector查看UI元素,启动
https://github.com/appium/appium-inspector/releases/tag/v2022.5.4
{
"appium:deviceName": "iPhone 13 por max",
"appium:platformVersion": "15.4.2",
"platformName": "iOS",
"appium:bundleId": "com.QXMansdsdssager.www",
"appium:udid": "xxxxxx-xxxxxxx",
"appium:xcodeOrgId": "U33ANMXXTW",
"appium:xcodeSigningId": "iPhone Developer"
}
启动后我们后看到如下图,表示成功