ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

WebDriverAgentRunner‑Runner WDA 使用 iOS App Signer 重签名

WebDriverAgentRunner‑Runner WDA 使用 iOS App Signer 重签名 版本V1.1运行环境macOS用途iOS 真机自动化测试 WDA 重签名 重要前提仅用于本人自有 iOS 设备自动化测试时效总览免费 Apple ID 签名有效期 7 天付费开发者账号正确使用手动导出开发描述文件可实现 1 年有效期账号、证书、描述文件三者有效期相互独立。一、前置准备1. 需要的文件与工具WebDriverAgentRunner‑Runner.zipWDA 预编译包从 Github WebDriverAgent Releases Releases · appium/WebDriverAgent下载重签名工具iOS App Signer官网iOS App Signer - InstructionsApple 账号免费 Apple ID / 付费 99$ 苹果开发者账号Xcode 内完成登录签名证书iPhone Developer开发证书Xcode 可自动生成描述文件.mobileprovision开发版预置描述文件环境Xcode 命令行工具2. 设备要求iPhone 真机的 UDID 必须添加到苹果开发者后台Mac 与 iPhone 可以正常 USB 连接⚠️ iOS17 及以上硬性要求签名前必须删除 XC 开头 Framework否则安装后直接闪退二、原始 zip 包处理生成 WDA.ipaiOS App Signer 仅支持 ipa不能直接使用 zip 包解压WebDriverAgentRunner‑Runner.zip得到 Payload 文件夹内部为WebDriverAgentRunner‑Runner.app【iOS17 必执行】删除 XC 框架终端进入 Payload 下的 Frameworks 目录rm -rf XC*.framework打包生成 ipa终端进入 Payload 同级目录执行zip -r WDA.ipa Payload附录一键脚本保存为package_wda.sh放到 Payload 同级目录#!/bin/bash rm -rf Payload/WebDriverAgentRunner-Runner.app/Frameworks/XC*.framework zip -r WDA.ipa Payload echo 打包完成生成 WDA.ipa执行授权运行chmod x package_wda.sh ./package_wda.sh三、证书 描述文件核心概念重点区分账号、证书、PP 描述文件很多人踩坑付费账号依然 7 天失效根源混淆三者有效期表格项目说明有效期付费个人开发者账号开发者会员资格账号本身开发权限1 年iOS Development 开发证书用于代码签名的证书文件1 年预置描述文件.mobileprovisionPP打包进 IPA 内部决定 WDA 在手机实际运行时长1. 开发者后台手动创建「iOS App Development」→1 年2. 第三方工具自动拉取临时 PP→仅 7 天关键坑哪怕你是付费账号如果让 iOS App Signer 自动生成描述文件拿到的是 7 天临时 PPWDA7 天后失效。现象App 图标可见、有 Automation 水印但是 WDA 的 8100http 服务挂掉curl 8100/status返回‑1004。补充Xcode 直接 Run 运行 WDA使用 Team 通配描述文件付费账号下是 1 年有效期第三方重签名工具不会复用这套逻辑。 ❗禁止使用 AdHoc 描述文件签 WDAAdHoc 不支持 XCTestWDA 无法正常运行只能选iOS App Development类型。获取 1 年有效期的.mobileprovisionPP正确步骤打开苹果开发者后台 → Certificates, Identifiers Profiles → Profiles点击 新建类型选择iOS App Development开发描述文件App ID配置和 WDA 的 BundleID 匹配也可以直接用通配符*Devices务必勾选目标 iPhone 设备 UDID生成描述文件下载.mobileprovision保存到本地 Mac。基础导出方式XcodeXcode → Settings → Accounts 登录 Apple ID创建任意 iOS 项目选择对应 Team连接真机Xcode 自动生成iPhone Developer开发证书Signing Capabilities → Provisioning Profile → Download Profile导出描述文件。约束条件PP 描述文件必须包含目标手机 UDIDBundle ID 必须和描述文件绑定的 AppID 保持一致四、iOS App Signer 图形化重签名操作⚠️ Provisioning Profile必须手动选择下载好的.mobileprovision 文件不要留空禁止工具自动生成否则得到 7 天临时 PP。打开 iOS App SignerInput file选择处理好的WDA.ipaSigning Certificate下拉选择iPhone Developer: xxx开发证书Provisioning Profile选中开发者后台手动下载的.mobileprovisionBundle Identifier填写和描述文件匹配的自定义 BundleID例如com.test.wdaxcui其余参数默认点击 Start输出文件命名WDA‑resigned.ipa✅ 重签名后校验描述文件实际有效期解压 ipa 读取内置的描述文件确认过期时间判断是 1 年还是 7 天unzip wda-signed.ipa -d wdatmp security cms -D -i wdatmp/Payload/WebDriverAgentRunner-Runner.app/embedded.mobileprovision profile.plist /usr/libexec/PlistBuddy -c Print :ExpirationDate profile.plist输出为一年后时间配置正确输出只有 7 天后使用了工具自动生成临时 PP需要重新操作。五、安装重签名后的 IPA 到 iPhone方式 1ideviceinstaller终端推荐没有命令先安装依赖brew install libimobiledevice安装 ipaideviceinstaller -i WDA-resigned.ipa方式 2Xcode 图形界面安装Xcode 菜单 Window → Devices and Simulators左侧选中目标 iPhone 设备窗口下方点击选中WDA‑resigned.ipa完成安装六、验证 WDA 是否正常工作安装完成后终端执行启动测试xcodebuild test-without-building -xctestrun WebDriverAgentRunner.xctestrun -destination id你的手机UDID配置到 Appium 即可开展 iOS 自动化测试。七、常见问题排查表格现象根因解决方案iOS App Signer 证书下拉列表空白证书缺失私钥、Xcode 账号未加载重新登录 Xcode 账号钥匙串验证开发证书私钥重启 iOS App SignerIPA 安装失败提示描述文件不含设备UDID 没有加入开发者后台添加手机 UDID重新生成下载描述文件签名成功WDA 打开直接闪退①iOS17 未删除 XC 框架②BundleID 不匹配③免费账号 7 天过期删除 XC*.framework核对 BundleID账号过期则重新签名codesign 权限报错缺少 entitlements 权限iOS App Signer 会自动带入描述文件权限一般无需手动干预WDA 能看到图标但是 8100 服务‑1004 报错使用 7 天临时 PP描述文件过期后台手动创建 iOS App Development 描述文件手动导入重签名校验 ExpirationDate八、重要补充约束iOS App Signer 优势自动处理 App 内 Framework、entitlements 权限文件对比原生 codesign 终端签名操作简单。免费 Apple ID 限制最多绑定 10 台设备签名 7 天失效到期需要重新签名。WDA 特殊注意点PP 必须包含设备 UDIDBundleID 与 AppID 匹配通配符*AppID 最省事WDA 属于 XCTestRunner重签名不能丢失 entitlements 权限否则即便 PP 是 1 年WDA 内部 http 服务依然启动失败重启手机后会丢失XCTest框架需连接上Mac电脑等待几分钟左右才可启动成功绝对不能使用 AdHoc 类型描述文件签名 WDA使用范围仅限自有设备个人自动化测试禁止商用、破解、批量设备部署。
返回列表