zoukankan      html  css  js  c++  java
  • Appium 遇到 Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65 的解决方法

    安装依赖:
    Appium iOS真机测试依赖于中心第三方软件套件:libimobiledevice, 用homebrew很容易安装

    brew install libimobiledevice

    除了依赖libimobiledevice以外, Appium支持真机在iOS 9.3以上版本使用Xcode 8+ 还要依赖于ios-deploy,通过npm和homebrew很容易安装:

    npm install -g ios-deploy

    brew install ios-deploy

    (对于hybrid或者web测试, 还需要遵循ios-webkit-debug-proxy设置指令)
    XCUITest driver工作方式是在真机上安装一个名为WebDriverAgent-Runner的助手应用程序, 通过该应用程序,测试应用程序是自动化的。虽然这在理论上是简单的,但是开发和测试的代码签名和配置文件的环节可能会让人有点头疼。
     

    基本(自动)配置:
    使用自动配置策略最简单的方法是用Appium的XCUITest Support在IOS真机上获取启动和运行,有2种方式:
    * 使用xcodeOrgId和xcodeSigningId这2个desired capabilities:
        {
          "xcodeOrgId": "<Team ID>",
          "xcodeSigningId": "iPhone Developer"
        }
    * 在你的文件系统的某个地方创建一个.xcconfig文件并添加以下内容到文件中:
        DEVELOPMENT_TEAM = <Team ID>
        CODE_SIGN_IDENTITY = iPhone Developer

    在这两种情况下,Team ID都是由Apple生成的一个独特的10个字符的字符串,它被分配给您的团队。

    可以用你的开发者账号找到你的Team ID. 登录你的开发者账号developer.apple.com/account, 在侧栏中点击Membership. 你的Team ID会在团队名称下面的Membership Information部分显示.

    也可以在keychain里面找到你的iphone开发者证书,team ID就列在"Organizational Unit"字段下。

    注意:这些互斥策略;要么使用xcodeConfigFile,要么用xcodeOrgId和xcodeSigningId组合.

    一旦配置成功,要开始测试只不过是在desired capability指定为一个真机的udid问题

     

    如果这个不起作用,通常会在Appium server日志中显现出类似如下错误:

    XCUITest xcodebuild exited with code '65' and signal 'null'.

    这一般意味着必要的签名未设置正确,通过手工配置来做

    基本(手工)配置
    WebDriverAgent目录:
    /usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
    * 找到appium的安装盘:
        $ which appium
        /usr/local/n/versions/node/10.4.0/bin/appium 用n管理器安装的node指向
        ->/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/build/lib/main.js
    * 进入appium安装盘:/path/where/installed/bin/appium, 在以下路径下找到WebDriverAgent
        /usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

    我的appium安装盘地址:

    /Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent


    * 打开terminal到上面的目录下, 执行以下命令来配置项目:
        $ mkdir -p Resources/WebDriverAgent.bundle
        $ ./Scripts/bootstrap.sh -d
    用Xcode打开WebDriverAgent.xcodeproj
    以下2个目标在"General"选项卡下都选"Automatically manage signing"并选择你的Development Team,应该会自动选择Signing Ceritificate.
    如下图所示: WebDriverAgentLib、WebDriverAgentRunner

    如果Signing Provisioning profile失败则需要先去Build Settings选项卡下面把bundle Id修改成xcode接受的bundle id

    返回到WebDriverAgentRunner 目标下的"General" 选项卡, 应该可以看到创建了一个provisioning profile如下图:

     

     执行成功后手机上会有一个webDriveragent

    参考:

    https://testerhome.com/topics/8074

    https://blog.csdn.net/yinshuilan/article/details/80626314

    https://testerhome.com/topics/8533

    https://testerhome.com/topics/12512

  • 相关阅读:
    Leetcode & CTCI ---Day 4
    Leetcode & CTCI ---Day 3
    Leetcode & CTCI ---Day 2
    Leetcode & CTCI ---Day 1
    编码格式坑之UTF-8
    15. 3Sum
    第十六周助教总结-第二组
    第十五周助教总结-第二组
    第十四周助教总结-第二组
    第十三周助教总结-第二组
  • 原文地址:https://www.cnblogs.com/kaola8023/p/12487366.html
Copyright © 2011-2022 走看看