WDA编译踩坑之旅,避坑指南带你轻松搞定
2023-01-09 07:07:59
WDA:iOS 设备自动化的全面指南
简介
WDA(WebDriverAgent)是 Apple 专为 iOS 设备提供的自动化测试框架,它使用 Selenium WebDriver API 控制设备上的元素。WDA 由两个组件组成:一个在 iOS 设备上运行的代理程序,称为 WebDriverAgentRunner,以及一个用于与代理程序通信的客户端库,称为 WebDriverAgent。
常见编译报错及解决方案
在编译 WDA 时,可能会遇到各种错误。以下是常见错误及其解决方案:
-
“The 'WebDriverAgentRunner' target overrides the 'ENABLE_BITCODE' build setting differently in each of its configurations.”
- 解决方案:将“Enable Bitcode”设置为“No”。
-
“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”中。
-
“Undefined symbols for architecture x86_64:”
- 解决方案:确保已将“WebDriverAgentLib.a”添加到项目的“Linked Frameworks and Libraries”中。
-
“error: invalid value 'i386' in '-arch' flag”
- 解决方案:将“Architectures”设置为“Standard architectures(armv7, arm64)”。
-
“error: linking with 'armv7' output when building for 'i386'”
- 解决方案:将“Architectures”设置为“Standard architectures(armv7, arm64)”。
-
“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”中。
-
“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 时,请注意以下事项:
- 确保已安装最新的 Xcode。
- 确保已安装最新的 WebDriverAgent。
- 确保已将“WebDriverAgent.xcodeproj”添加到项目的“Embedded Binaries”中。
- 确保已将“WebDriverAgentRunner.app”添加到项目的“Info.plist”文件的“LSApplicationQueriesSchemes”数组中。
结论
通过本文的讲解,您已对 WDA 的编译过程有了更深入的了解。希望本文能帮助您快速解决编译问题,提高开发效率。
常见问题解答
-
如何设置“ENABLE_BITCODE”?
- 打开 Xcode 项目,选择“WebDriverAgentRunner”目标。
- 在“Build Settings”中,找到“Enable Bitcode”设置并将其设置为“No”。
-
“Undefined symbols for architecture x86_64:”错误的可能原因是什么?
- 这是由于缺少必需的库。确保已将“WebDriverAgentLib.a”添加到项目的“Linked Frameworks and Libraries”中。
-
如何添加“WebDriverAgent.xcodeproj”作为嵌入式二进制文件?
- 在 Xcode 项目中,选择“File”>“Add Files to ‘Your Project’”>“Add Files”。
- 导航到“WebDriverAgent.xcodeproj”文件并选择它。
- 确保已选中“Copy items if needed”选项。
-
“LSApplicationQueriesSchemes”数组中缺少“WebDriverAgentRunner.app”会产生什么后果?
- 由于代理程序无法与 WebDriverAgentRunner 进行通信,因此自动化测试将失败。
-
如何检查我是否安装了最新的 Xcode 和 WebDriverAgent?
- 打开 App Store 并检查“更新”部分。
- 您还可以在 Apple Developer 网站上查看最新版本的 WebDriverAgent。