一、背景
Appium ios平台自动化测试需要将WebDriverAgent安装到真机上,通过它驱动手机进行自动化测试,但实际往真机安装过程中会遇到各种各样的问题,特此记录一下。
二、问题汇总:
1、The executable was signed with invalid entitlements.

2、Xcode There was an error communicating with your device.
3、App installation failed: An unknown error has occurred.
以上三种情况都遇到过,WebDriverAgent项目中的bundle Id和签名(apple id开发者账号)都检查了好几遍没有问题,百度了浩如烟海的资料,没有一个能解决掉,真是抓狂(说实话网上的资料很少有严谨的人,都是抄来抄去和毫无价值的废话)
本人mac OS系统:10.13.6
Xcode系统:8.0、10.0、10.1挨个试没有一个成功的。
解决办法:
这是一个不是解决办法的方法:我将mac OS系统升级到10.15.4、Xcode升级到11.4.1,然后连接真机编译并执行,神奇的事情发生了,WebDriverAgent成功安装到真机上了。。。。。
总结和经验:
1)升级macOS系统和Xcode系统到最新;
2)如果你身边其他人有apple id开发者账号可以用来作为签名,也许是自己的账号存在某些不为人知的问题造成的;话说Xcode的配置真是闹心。。。
后续补充:
1、后来本人将自己另一台macBook系统升级到最新10.15.6,Xcode升级到11.6,安装最新的appium-desktop 1.17.1,利用appium自带的WebDriverAgent对WebDriverAgentRunner设置bundleid和签名后执行product-test即可将webDriverAgent安装到真机上,且初始化被测app成功。
初始化参数为:
{
"automationName": "XCUITest",
"platformName": "iOS",
"deviceName": "iPhone X",
"newCommandTimeout": 600,
"noReset": true,
"useNewWDA": false,
"bundleId": "com.renmaikeji.easygopy",
"udid": "0bff0705b3ccb82ff0339df6587thuhdb3908ec2",
"xcodeOrgId": "TJJ79L9K11",
"xcodeSigningId": "iPhone Developer"
}
- xcodeOrgId:此处填写team_id,格式如“TJJ79L9K11”,与xcodeSigningId参数组团出现,不可单独使用;
- xcodeSigningId:此处填写“iPhone Developer”,不可单独使用,与上面的xcodeOrgId组团使用;
- useNewWDA:若为true,启动时会卸载设备上已安装的WDA,并重新安装;若为false,启动时会使用已安装的WDA。若使用真机测试,强烈建议设置为false。
WDA Capability参数链接地址:https://github.com/appium/appium-xcuitest-driver#desired-capabilities
建议:先在真机上安装WDA并信任后,设置参数useNewWDA为false,好处是每次启动appium服务不用自动卸载WDA,可以循环使用之前安装的WDA。
2、XCode默认是不支持调试与其版本不匹配的iOS,所以Xcode连接与其不匹配的iphone真机时,会出现连接失败的情况。它是在这个路径下找iOS镜像来确定支持与否,把要调试的真机的ios版本对应的镜像下载后放到该路径下,重启Xcode即可
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

本文详细记录了在Appium中安装WebDriverAgent到iPhone真机进行自动化测试时遇到的问题及解决办法,包括签名错误、Xcode设备通信故障、安装失败等。解决方案包括更新macOS和Xcode到最新版本,以及使用特定的Apple ID开发者账号签名。此外,还介绍了如何通过appium-desktop设置特定参数实现WebDriverAgent的安装与初始化。
7158

被折叠的 条评论
为什么被折叠?



