返回

WDA编译踩坑之旅,避坑指南带你轻松搞定

Android

WDA:iOS 设备自动化的全面指南

简介

WDA(WebDriverAgent)是 Apple 专为 iOS 设备提供的自动化测试框架,它使用 Selenium WebDriver API 控制设备上的元素。WDA 由两个组件组成:一个在 iOS 设备上运行的代理程序,称为 WebDriverAgentRunner,以及一个用于与代理程序通信的客户端库,称为 WebDriverAgent。

常见编译报错及解决方案

在编译 WDA 时,可能会遇到各种错误。以下是常见错误及其解决方案:

  1. “The 'WebDriverAgentRunner' target overrides the 'ENABLE_BITCODE' build setting differently in each of its configurations.”

    • 解决方案:将“Enable Bitcode”设置为“No”。
  2. “ld: warning: directory not found for option '-L/Users/apple/Library/Developer/Xcode/DerivedData/WebDriverAgentRunner-gddswlskcdwvtsgglpzpwpykmyal/Build/Products/Debug-iphonesimulator/WebDriverAgentRunner.framework/WebDriverAgentRunner’”

    • 解决方案:将“WebDriverAgentRunner.framework”添加到项目的“Linked Frameworks and Libraries”中。
  3. “Undefined symbols for architecture x86_64:”

    • 解决方案:确保已将“WebDriverAgentLib.a”添加到项目的“Linked Frameworks and Libraries”中。
  4. “error: invalid value 'i386' in '-arch' flag”

    • 解决方案:将“Architectures”设置为“Standard architectures(armv7, arm64)”。
  5. “error: linking with 'armv7' output when building for 'i386'”

    • 解决方案:将“Architectures”设置为“Standard architectures(armv7, arm64)”。
  6. “ld: warning: directory not found for option '-L/Users/apple/Library/Developer/Xcode/DerivedData/WebDriverAgentLib-gddswlskcdwvtsgglpzpwpykmyal/Build/Products/Debug-iphonesimulator/WebDriverAgentLib.framework/WebDriverAgentLib’”

    • 解决方案:将“WebDriverAgentLib.framework”添加到项目的“Linked Frameworks and Libraries”中。
  7. “ld: warning: directory not found for option '-L/Users/apple/Library/Developer/Xcode/DerivedData/WebDriverAgentLib-gddswlskcdwvtsgglpzpwpykmyal/Build/Products/Debug-iphoneos/WebDriverAgentLib.framework/WebDriverAgentLib’”

    • 解决方案:将“WebDriverAgentLib.framework”添加到项目的“Linked Frameworks and Libraries”中。

注意事项

编译 WDA 时,请注意以下事项:

  1. 确保已安装最新的 Xcode。
  2. 确保已安装最新的 WebDriverAgent。
  3. 确保已将“WebDriverAgent.xcodeproj”添加到项目的“Embedded Binaries”中。
  4. 确保已将“WebDriverAgentRunner.app”添加到项目的“Info.plist”文件的“LSApplicationQueriesSchemes”数组中。

结论

通过本文的讲解,您已对 WDA 的编译过程有了更深入的了解。希望本文能帮助您快速解决编译问题,提高开发效率。

常见问题解答

  1. 如何设置“ENABLE_BITCODE”?

    • 打开 Xcode 项目,选择“WebDriverAgentRunner”目标。
    • 在“Build Settings”中,找到“Enable Bitcode”设置并将其设置为“No”。
  2. “Undefined symbols for architecture x86_64:”错误的可能原因是什么?

    • 这是由于缺少必需的库。确保已将“WebDriverAgentLib.a”添加到项目的“Linked Frameworks and Libraries”中。
  3. 如何添加“WebDriverAgent.xcodeproj”作为嵌入式二进制文件?

    • 在 Xcode 项目中,选择“File”>“Add Files to ‘Your Project’”>“Add Files”。
    • 导航到“WebDriverAgent.xcodeproj”文件并选择它。
    • 确保已选中“Copy items if needed”选项。
  4. “LSApplicationQueriesSchemes”数组中缺少“WebDriverAgentRunner.app”会产生什么后果?

    • 由于代理程序无法与 WebDriverAgentRunner 进行通信,因此自动化测试将失败。
  5. 如何检查我是否安装了最新的 Xcode 和 WebDriverAgent?

    • 打开 App Store 并检查“更新”部分。
    • 您还可以在 Apple Developer 网站上查看最新版本的 WebDriverAgent。