环境:(对于具体版本没有必要完全一致)

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

手机ios系统自动化 苹果自动化不管用_xcode

 2、通过xcode编译 WebDriverAgen

本文WebDriverAgent 是通过单独下载WebDriverAgent-4.4.3

https://github.com/appium/WebDriverAgent/releases/tag/v4.4.3

首先要执行如下命令

手机ios系统自动化 苹果自动化不管用_macos_02

npm install

特殊说明

经过测试 只要添加好团队,选择团队team即可,其他步骤也可以忽略哈

第一步 首先修改 WebDriverAgentLib文件的 general

图1.1

手机ios系统自动化 苹果自动化不管用_xcode_03

第二步 修改 WebDriverAgentLib文件的 Signing&Capabilities

图1.2

手机ios系统自动化 苹果自动化不管用_xcode_04

在操作team这个步骤时

如果没有账号,需要添加好账号,并申请权限

通过 manage Certificates添加开发者证书 

图1.3

手机ios系统自动化 苹果自动化不管用_macos_05

本环节要确保添加好team后,确保页面上没有任何错误:如果有错误,则无法编译成功,会出现错误,如下图

图1.4

手机ios系统自动化 苹果自动化不管用_xcode_06

第三步 修改 WebDriverAgentLib文件的 Build Settings 设置支持的最低iOS版本,以及修改 Bundle identifier

图1.5

手机ios系统自动化 苹果自动化不管用_ide_07

 图1.6

手机ios系统自动化 苹果自动化不管用_xcode_08

第四步 修改WebDriverAgentRunner文件的 Signing&Capabilities

图1.7

手机ios系统自动化 苹果自动化不管用_ide_09

第五步 修改WebDriverAgentRunner文件的 Build Settings

手机ios系统自动化 苹果自动化不管用_macos_10

手机ios系统自动化 苹果自动化不管用_手机ios系统自动化_11

 第六步 配置IntegrationApp的general和 Signing&Capabilities

   

手机ios系统自动化 苹果自动化不管用_macos_12

手机ios系统自动化 苹果自动化不管用_手机ios系统自动化_13

第七步 点击左上角的执行按钮,选择自己的真机,出现 Build Succeeded提示,则部署完成

手机ios系统自动化 苹果自动化不管用_macos_14

 不出意外的话,手机上会显示已经安装的app,并且弹出如下页面。

手机ios系统自动化 苹果自动化不管用_ios_15

 第八步:开启iphone手机开发者模式,进入开发者开启UI Automation选择,如下图

手机ios系统自动化 苹果自动化不管用_ide_16

手机ios系统自动化 苹果自动化不管用_macos_17

第九步 建立服务WebDriverAgent 

1,可以先关掉xcode了。确保手机和MAC都在同一个wifi下,且都能连接外网
获取udid:如下图

手机ios系统自动化 苹果自动化不管用_ios_18

可以通过itools,爱思助手等

获取到udid后,使用如下命令,其中xxxx需要替换为你手机的udid

使用命令窗口进入到 WebDriverAgent目录,也就是xcode
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=xxxxxxxxxxxxxx' test

手机ios系统自动化 苹果自动化不管用_ide_19

执行后,等待一会则会出现如下信息标识成功 

手机ios系统自动化 苹果自动化不管用_ide_20

2、确认设备监听成功 在手机设置->Developer 中,打开Enable UI Automation

3.从上图中,可以看到 ServerURLHere->http://169.254.48.135:8100<-ServerURLHere

4.输入上面的连接http://169.254.163.103:8100/status,看到返回一个json串,则证明监听成功

手机ios系统自动化 苹果自动化不管用_ide_21

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

手机ios系统自动化 苹果自动化不管用_macos_22

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"
}

手机ios系统自动化 苹果自动化不管用_xcode_23

 启动后我们后看到如下图,表示成功

手机ios系统自动化 苹果自动化不管用_手机ios系统自动化_24