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 usbmuxd
brew install ideviceinstaller
brew install carthage
brew install ios-webkit-debug-proxy
DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g
DEVELOPMENT_TEAM_ID=TEAM_ID npm i app-inspector -g
cnpm 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