iOS手机App爬虫
-
- 一、环境准备与工具安装
-
- [1. 开发基础环境配置](#1. 开发基础环境配置)
-
- [1.1 Node.js环境](#1.1 Node.js环境)
- [1.2 Xcode套件](#1.2 Xcode套件)
- [1.3 Java环境](#1.3 Java环境)
- [2. 核心测试工具链](#2. 核心测试工具链)
-
- [2.1 Appium主程序](#2.1 Appium主程序)
- [2.2 辅助工具集](#2.2 辅助工具集)
- [3. 可视化工具](#3. 可视化工具)
- 二、设备与环境验证
-
- [1. 设备信息获取](#1. 设备信息获取)
- [2. 环境健康检查](#2. 环境健康检查)
- 三、WebDriverAgent编译部署
-
- [1. 设备端准备](#1. 设备端准备)
- [2. 项目配置](#2. 项目配置)
- [3. Xcode证书配置](#3. Xcode证书配置)
- [4. 编译与部署](#4. 编译与部署)
- 四、自动化测试执行
-
- [1. 启动Appium服务](#1. 启动Appium服务)
- [2. 配置Appium Inspector](#2. 配置Appium Inspector)
- [3. 参数获取方法](#3. 参数获取方法)
- [4. 启动测试会话](#4. 启动测试会话)
- 五、常见问题排查
一、环境准备与工具安装
1. 开发基础环境配置
1.1 Node.js环境
bash
# 安装NodeJs(JavaScript运行时环境,用于运行Appium服务)
nvm install 21
nvm use 21
node --version # 验证安装
npm -v # 验证包管理器
1.2 Xcode套件
-
Xcode安装 :从App Store下载安装(iOS应用开发必备IDE)
-
Xcode Command Line Tools :终端执行安装命令
bashxcode-select --install
1.3 Java环境
bash
# 安装Java(Appium部分依赖需要Java环境)
brew install java
# 配置环境变量(下面内容添加至/etc/profile)
echo 'JAVA_HOME=/opt/homebrew/opt/openjdk
export JAVA_HOME' | sudo tee -a /etc/profile
# 然后source一下
source /etc/profile
2. 核心测试工具链
2.1 Appium主程序
bash
# 安装Appium(跨平台自动化测试框架)
npm install -g appium
# 查看支持的驱动列表(如下图)
appium driver list
# 安装XCUITest驱动(iOS专用测试驱动)
appium driver install xcuitest

2.2 辅助工具集
bash
# 安装WebDriver客户端库
npm install -g wd
# 安装Appium Doctor(环境检测工具,它检查Appium成功运行的前提条件)
npm install -g appium-doctor
# 安装Carthage(WebDriverAgent依赖管理器)
brew install carthage
# 安装设备管理工具
brew install libimobiledevice # 设备通信库
brew install ideviceinstaller # 应用管理工具
brew install ios-deploy # 应用部署工具
3. 可视化工具
二、设备与环境验证
1. 设备信息获取
bash
# 获取设备UDID
idevice_id -l
# 查看设备详细信息
ideviceinfo
ideviceinfo -k DeviceName # 设备名称
ideviceinfo -k ProductVersion # iOS版本
# 查看已安装应用列表
ideviceinstaller -l -o list_user
# 验证设备连接
ios-deploy -c
2. 环境健康检查
bash
appium-doctor --ios

三、WebDriverAgent编译部署
1. 设备端准备
- 开启开发者模式:设置 > 隐私与安全性 > 开发者模式(连点开启)
- 启用UI自动化:开发者选项 > 启用UI自动化
2. 项目配置
bash
# 修改文件所有权(Username修改为自己的appium实际安装路径)
sudo chown -R $(whoami) /Users/{Username}/.appium
# 编辑 WebDriverAgent.xcodeproj 项目(下面2种方式任选其1)
# 1. 命令行快速启动项目
sudo appium driver run xcuitest open-wda
# 2. 手动双击文件 WebDriverAgent.xcodeproj 文件启动
/Users/{Username}/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj

3. Xcode证书配置
-
修改以下目标的签名配置(每一个都要配置!!!):
- WebDriverAgentRunner
- WebDriverAgentLib
- IntegrationApp
-
配置要点:
-
勾选
Automatically manage signing
-
Team
一栏选择个人开发者账号(需登录Apple ID) -
修改
Bundle Identifier
(把Facebook
的内容换成自己的(随便修改,保证唯一即可)
-
设置目标iOS版本与设备iOS版本匹配
-
修改Scheme
Product -> Scheme -> WebDriverAgentRunner
-
修改Destination
Product -> Destination -> 选择自己的手机
-
4. 编译与部署
-
执行测试编译:
Product > Test
-
首次编译安装时会遇到需要证书授权的报错,需要在手机上信任证书后再次执行第1步:
- 设置 > 通用 > VPN与设备管理 > 信任开发者证书
- 设置 > 通用 > VPN与设备管理 > 信任开发者证书
-
验证服务状态:
- 手机访问
localhost:8100/status
- 命令行执行端口映射:
bash# 端口映射 (把手机上启动的8100端口服务映射到电脑端) iproxy 8100 8100
- 电脑访问
localhost:8100/status
- 手机访问
四、自动化测试执行
1. 启动Appium服务
bash
appium --allow-cors

2. 配置Appium Inspector

json
{
"platformName": "iOS",
"appium:deviceName": "XXXXX", //手机名
"appium:platformVersion": "18.3.1", //手机iOS系统版本
"appium:bundleId": "com.tencent.xin", //要启动的手机app的bundleId
"appium:automationName": "XCUITest",
"appium:xcodeOrgId": "XXXXX", //开发者ID
"appium:udid": "XXXXXXXX-XXXXXXXXXXXX", //手机设备ID
"appium:noReset": true,
"appium:xcodeSigningId": "iPhone Developer"
}
3. 参数获取方法
参数项 | 获取命令 |
---|---|
deviceName | ideviceinfo -k DeviceName |
platformVersion | ideviceinfo -k ProductVersion |
bundleId | ideviceinstaller -l -o list_user |
udid | idevice_id -l |
xcodeOrgId | Xcode账户设置中查看(如下图,在这个界面下点击那个 Other就能获取了) |

4. 启动测试会话
- 确保设备处于解锁状态
- 点击Start Session开始自动化测试

五、常见问题排查
- 证书信任问题:需在设备端手动信任开发者证书
- 端口占用冲突:确保8100端口未被其他程序占用
- WDA编译失败:检查Xcode版本与iOS系统版本兼容性
- 元素定位失败:使用Appium Inspector验证控件树结构
提示:建议保持iOS设备屏幕常亮(设置 > 显示与亮度 > 自动锁定 > 永不)