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

2018/07/17 自动化测试

1. 前言

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

2. 开始

1. 关于Macaca-ios和App-inspector的说明

  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官网,然后按照教程,一句
    /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的具体依赖

  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. 打开终端,输入
         rm -rf /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices
        
      7. 重新安装安装命令,必要时加上 --unsafe-perm=true 参数.
      8. 问题解决,安装完成
    2. 如果上面这两个玩意安装成,接下来进入编译xctestUIWd(这里以macca-ios为例,app-inspector一样)
      1. 进入 xctestwd目录没下载编译需要的依赖库
         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编译.具体详情点击过去issue查看

    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

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

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

Search

    Table of Contents