1

想要试试自动化 iOS APP,通过搜索找到了 Appium,之前来来回回装了好几次都没能成功,这次终于可以了。

安装环境和连接效果图

环境:XCode 11, Appium Desktop v1.15.0,免费开发者账号

appium


安装步骤

1.安装各种依赖

需要安装 Xcode Command Line Tools, Homebrew, jdk, android-jdk, npm, Appium

具体过程可以参考 TesterHome 上的 macOS 下使用 npm 安装 Appium (详)

我看过好几个安装教程,我觉得这个是比较清楚可以一步一步做下来的。


2.安装 Appium Desktop

命令行 Appium 没有 Inspector,但是感觉研究页面结构还是需要的,所以建议大家用 Appium 的桌面版。

可以从 Github 下载安装。

https://github.com/appium/appium-desktop


3.brew 安装 Carthage

brew install carthage

https://github.com/Carthage/Carthage


4.准备 WebDriverAgent

cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
./Scripts/bootstrap.sh
./Scripts/bootstrap.sh -d

如果 Appium Desktop 的版本不是 v1.15.0,文件夹结构会不一样,记得升级到 v1.15.0。

-d会安装一些依赖,不然在运行 WebDriverAgent 的时候会报错。

有一些教程会说从 GitHub 下载 Facebook 版 WebdriverAgent, 签名后复制到 Appium 的对应文件夹里。我试过发现 Facebook 版因为不再维护有些功能是没有的,现在直接用 Appium 项目里的 WebDriverAgent 就可以了。


5.给 Runner 签名

免费的开发账户就可以了。

打开/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj

我是把所有 Target 都签了一遍,不知道是不是必须的。

sign1

sign2

有的因为 Bundle Indentifier 重复会无法成功签名,只要在后面加上字符串使整个 Identifier 唯一就可以了。
如果直接改不了可以在 Build Settings 里面修改。

签完后选择 WebDriverAgentRunner 作为 Target, Device 选择用数据线连接着的 iOS 真机。

从菜单栏选择 Product -> Test。

Xcode 将编译项目,在真机上安装。

第一次可能会因为开发者不被信任而运行失败。在手机设置中找到 General -> Device Management 信任签名所使用的开发者账号就好了。

因为如果某个开发者账号签名的所有 App 都被删除的话下次再安装又要重新信任,所以我随便找了一个现成的程序签名安装在手机上不去删它,之后就不用来来回回地设置信任这个开发者账号了。

code

每个开发者账号会有一个有数字和字母组成的 OrgId,就是上面括号内红色的部分。记下来之后在 Appium Desktop 中要用到。


6.配置 Appium Desktop

将手机和电脑用数据线连接。

打开 Appium Desktop 选择 Start Server v1.15.0。

点击上方放大镜按钮 Start Inspector Session。

选择 Automatic Server。

Desired Capabilities 我是这么写的。

appium desktop

其中 xCodeOrgId 是上一步记下来的,如果是付费开发者账号应该可以在账号网页中找到这个信息。

# 获取udid,bundleId等信息
ideviceinstaller -l -o list_user
idevice_id -l
ideviceinfo -k ProductType
ideviceinfo -k ProductVersion
ideviceinfo -k DeviceName

设置好了以后点击 Start Session 就可以了。等一会儿后 Inspector就会打开。

之后再用 python 的 facebook-wda 库进行自动化就可以了。


刚开始写自己的博客
https://oliwang.github.io/blog.html

我的公众号「伪装程序大佬」
image


oliwang
0 声望0 粉丝