Macaca Macaca 构建真机环境遇到的坑与出坑!.

初学狗 · 2018年07月17日 · 最后由 fifi0526 回复于 2019年04月17日 · 1488 次阅读

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 官网
共收到 20 条回复 时间 点赞

不只是 markdown low,当自己知识储备不足时,会觉得很多技术都很 low,等到自己去做又没法去做。

乾行 回复

嗯、我也很 low。但是声称支持 markdown 支持成这样 咳咳。不知道这 markdown 是不是第三方还是自己写的呢

我的 MacOs 版本是 10.12.6,所以不支持 Xcode9.3
遇到了你说的 Fuzi 编译爆出 No such module "libxml2"的问题。
请问除了升级系统,有没有其他解决办法呢?
怕升级系统了,原来安的一些软件又不适用。。

晓筱 回复

上面有说 更新 cartfile 里面的 fuzi 版本号就好了

初学狗 回复

照你说的更改了 cartfile 里面的 fuzi 版本号,但还是不行。。😭😢

晓筱 回复

https://github.com/cezheng/Fuzi/issues/85 改完版本号,然后更新依赖,没问题的.亲身体验

初学狗 回复

谢谢楼主,搞定了🌹

xcode9.4.1 的怎么办?有高人知道吗?

晓筱 回复

客气客气! 我也是初学狗

山姆大叔 回复

这个也不是没有办法,只不过非常麻烦.我能想到的就是直接把 cartfile 编译后的包 cp 过去,或者找 ios 开发搞一下这个 swifter 的编译环境,具体未知 ,我也不是 ios 开发, 与其这样,不如下载个 xcode9.3 感觉好麻烦的说

仅楼主可见
小白 回复

可以啊

修改了 Fuzi 版本号为 2.0.1 之后,怎么更新依赖呢

初学狗 [该话题已被删除] 中提及了此贴 09月05日 11:59

directory not found for option '-F/Users/qaceshi/.npm-global/lib/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD/Frameworks'
1、xcode 编译完提示这个,知道是什么原因吗

没有全局安装这个 macaca-ios 吧..自己去上面的提示路径看下

初学狗 回复

DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g 我是按照文档装的,-g 已经是全局了吧

你好,我也遇到了同样的问题,xcode 编译完以后报的找不到 frameworks
你的问题解决了吗?

我也一直没弄好,加个好友一起探讨下?

22楼 已删除

加 g 就是全局啊 你去路径看下有没有 或者找到后在 xcode 里面配置下

你好,我也遇到了这个问题,请问你解决了么~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册