1. 前言
- 最为一个测试初学狗的我和你,尝尝被所谓的编程语言
Java,Kotlin,Python,JavaScript,Groovy….等等搞得团团转,羡慕神奇的码农,化字符为神奇.然而,除了Coding,恶心大家个还有各种测试环境的构建,例如Macaca-ios系列就是这么个玩意.在这里,我将记录我所踩到的坑和跳出坑的方法,让更多在测试开始道路上妹纸,轻松度过第一关'配置'.
2. 开始
1. 关于Macaca-ios和App-inspector的说明
- 先说明一些东西,免的大家在概念上混淆,
Macaca-ios和App-inspector应该是大家必装的兄弟.首先说下这俩关系.- 本质上来说这俩没有半毛钱关系.一个是操作手机下发指令的工具,一个是查看页面元素的玩意
- 如果有关系,也一定是这俩玩意都使用了
xctestUIWd
2. 本次构建环境:
序号|名称|版本 —|——–|——————-
-
brew版本 Homebrew 1.6.12 -
node版本 v10.4.1 -
cnpm版本 cnpm@5.1.1 -
xcode版本 9.3.1(9.2) -
ios版本 10.2.1 - |MacOs版本|
10.13.6如果没有安装brew那么很多东西都无法进行,所以先安装brew,点击进入brew官网,然后按照教程,一句/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"即可安装完成. 如果没有安装
Node请先安装node,使用命令brew install node即可安装.最后建议使用cnpm来加速依赖库的下载,点击链接到cnpm官网,或者直接执行
npm install -g cnpm --registry=https://registry.npm.taobao.org来进行安装. 至此软条件更新完毕.
xcode最好是9.3+版本,9.2可以会有坑,下面体提到.
3. 开始安装Macaca-ios和App-inspector的具体依赖
- 大家可以进入App-inspector的官网和Macaca-ios的官网查看.
- 开始安装(无脑敲就好了):
brew install usbmuxdbrew install ideviceinstallerbrew install carthagebrew install ios-webkit-debug-proxyDEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -gDEVELOPMENT_TEAM_ID=TEAM_ID npm i app-inspector -gcnpm install macaca-cli
- 以上步骤可能触发问题:
- 安装
DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g和DEVELOPMENT_TEAM_ID=TEAM_ID npm i app-inspector -g的时候可能会有一个编译ios-deploy的错误,具体记得不太清楚,应该会有一个提示错误的路径信息/System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices,很诡异,解决办法也很简单粗暴,macOs在某一次升级后加了个什么SIP保护的机制,具体可以Google,现在要做的就是关闭这个玩意 ,步骤如下:- 关机
- 启动
- 按住commond+r 进入recovery模式
- 打开终端输入
csrutil disable命令 - 重启
- 打开终端,输入
rm -rf /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices - 重新安装安装命令,必要时加上
--unsafe-perm=true参数. - 问题解决,安装完成
- 如果上面这两个玩意安装成,接下来进入编译xctestUIWd(这里以macca-ios为例,app-inspector一样)
- 进入 xctestwd目录没下载编译需要的依赖库
cd /usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd carthage update --platform iOS #只编译ios平台这个步骤里可能发生错误在编译
Fuzi - 如果Fuzi编译爆出
No such module "libxml2",解决步骤如下:- 升级xcode版本,你的xcode版本很有可能为9.2.x,升级到9.3.x 但是切记,千万不要升级到9.4,因为9.4的swifter版本太新,会造成swifter编译错误.
- 如果你不想升级,打开目录
/usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd下的Cartfile文件进行编辑,里面有一行github "cezheng/Fuzi" ~> 2.1.0修改为
github "cezheng/Fuzi" == 2.0.1具体原因Fuzi最新版本不在支持xcode9.2编译.具体详情点击过去issue查看
- 进入 xctestwd目录没下载编译需要的依赖库
-
都ok后就可以直接打开项目
/usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj具体签名流程在多说,可以在网上搜索,论坛也是一大堆.那个什么bundleId不用改,配置好直接编译下就好了,如果编译通过,直接关闭xcode就好了,不必安装到手机!!!!!!好多教程commond+u..跑到手机上,完全没必要. - 运行macaca-ios server,然后随便找个官网的demo点我直接飞过去,替换设备id,bundleId.
如果运行的时候出现
place check project xxxxx请回到签名步骤,这个是签名错误!!!!
- 安装
没有意外,以上内容就是构建整个真机环境遇到的所有问题,没有什么稀奇古怪.也希望大家将自己遇到的问题贴到下面,或者经验分享到下面.拯救每一个才入门的测试妹纸.
我是初学狗,请叫我Lucky-Dog