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

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

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

前言

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

  1. 先说明一些东西,免的大家在概念上混淆,Macaca-ios和App-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 -g和 DEVELOPMENT_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
你的问题解决了吗?

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

20楼 已删除

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

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

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