Ps:吐槽一句, Markdown 支持好 low.全乱了

前言

最为一个测试初学狗的我和你,尝尝被所谓的编程语言Java,Kotlin,Python,JavaScript,Groovy....等等搞得团团转,羡慕神奇的码农,化字符为神奇.然而,除了 Coding,恶心大家个还有各种测试环境的构建,例如Macaca-ios系列就是这么个玩意.在这里,我将记录我所踩到的跳出坑的方法,让更多在测试开始道路上妹纸,轻松度过第一关'配置'.

  1. 先说明一些东西,免的大家在概念上混淆,Macaca-iosApp-inspector应该是大家必装的兄弟.首先说下这俩关系.
    1. 本质上来说这俩没有半毛钱关系.一个是操作手机下发指令的工具,一个是查看页面元素的玩意
    2. 如果有关系,也一定是这俩玩意都使用了xctestUIWd
  2. 本次构建环境:
    序号 | 名称 | 版本
    ---| -------- |-------------------

    1. |brew 版本 | Homebrew 1.6.12
    2. |node 版本 | v10.4.1
    3. |cnpm 版本 |cnpm@5.1.1
    4. |xcode 版本 | 9.3.1(9.2)
    5. |ios 版本 | 10.2.1
    6. |MacOs 版本 | 10.13.6 如果没有安装 brew 那么很多东西都无法进行,所以先安装 brew,点击进入 brew 官网,然后按照教程,一句 sh /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 即可安装完成. 如果没有安装Node请先安装 node,使用命令 shell brew install node 即可安装.最后建议使用 cnpm 来加速依赖库的下载,点击链接到 cnpm 官网,或者直接执行 shell npm install -g cnpm --registry=https://registry.npm.taobao.org 来进行安装. 至此软条件更新完毕.xcode最好是 9.3+ 版本,9.2 可以会有坑,下面体提到.
  3. 开始安装 Macaca-ios 和 App-inspector 的具体依赖

    1. 大家可以进入 App-inspector 的官网和 Macaca-ios 的官网查看.
    2. 开始安装 (无脑敲就好了):
      1. brew install usbmuxd
      2. brew install ideviceinstaller
      3. brew install carthage
      4. brew install ios-webkit-debug-proxy
      5. DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g
      6. DEVELOPMENT_TEAM_ID=TEAM_ID npm i app-inspector -g
      7. cnpm install macaca-cli
    3. 以上步骤可能触发问题:

      1. 安装DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -gDEVELOPMENT_TEAM_ID=TEAM_ID npm i app-inspector -g的时候可能会有一个编译ios-deploy的错误,具体记得不太清楚,应该会有一个提示错误的路径信息/System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices,很诡异,解决办法也很简单粗暴,macOs 在某一次升级后加了个什么 SIP 保护的机制,具体可以 Google,现在要做的就是关闭这个玩意 ,步骤如下:
        1. 关机
        2. 启动
        3. 按住 commond+r 进入 recovery 模式
        4. 打开终端输入csrutil disable命令
        5. 重启
        6. 打开终端,输入 shell rm -rf /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices
        7. 重新安装安装命令,必要时加上 --unsafe-perm=true 参数.
        8. 问题解决,安装完成
      2. 如果上面这两个玩意安装成,接下来进入编译 xctestUIWd(这里以 macca-ios 为例,app-inspector 一样)
        1. 进入 xctestwd 目录没下载编译需要的依赖库 shell cd /usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd carthage update --platform iOS #只编译ios平台 这个步骤里可能发生错误在编译Fuzi
        2. 如果 Fuzi 编译爆出No such module "libxml2",解决步骤如下:
          1. 升级 xcode 版本,你的 xcode 版本很有可能为 9.2.x,升级到 9.3.x 但是切记,千万不要升级到 9.4,因为 9.4 的 swifter 版本太新,会造成 swifter 编译错误.
          2. 如果你不想升级,打开目录/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 编译.具体详情
      3. 都 ok 后就可以直接打开项目 /usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj 具体签名流程在多说,可以在网上搜索,论坛也是一大堆.那个什么bundleId不用改,配置好直接编译下就好了,如果编译通过,直接关闭 xcode 就好了,不必安装到手机!!!!!! 好多教程 commond+u..跑到手机上,完全没必要.
      4. 运行 macaca-ios server,然后随便找个官网的demo 点我直接飞过去,替换设备 id,bundleId. 如果运行的时候出现place check project xxxxx 请回到签名步骤,这个是签名错误!!!!

没有意外,以上内容就是构建整个真机环境遇到的所有问题,没有什么稀奇古怪.也希望大家将自己遇到的问题贴到下面,或者经验分享到下面.拯救每一个才入门的测试妹纸.
我是初学狗,请叫我Lucky-Dog/点我进入时光隧道

本文设计到所有项目链接和官网:

  1. 官方 Macaca-sample
  2. Fuzi
  3. Macaca 仓库
  4. Macaca 官网
  5. app-inspector 仓库
  6. app-inspector 官网
  7. brew 官网
  8. node 官网
  9. cnpm 官网


↙↙↙阅读原文可查看相关链接,并与作者交流