【问题标题】:error build: Cannot link directly with dylib/framework XCTAutomationSupport for architecture arm64构建错误:无法直接链接 dylib/framework XCTAutomationSupport for architecture arm64
【发布时间】:2022-11-29 18:00:26
【问题描述】:

我正在使用 Xcode Beta 14,尝试构建 WebDriverAgent

低于错误

WebDriverAgent/Build/Products/Debug-iphoneos/WebDriverAgentLib.framework/WebDriverAgentLib

ld: 无法直接与 dylib/framework 链接,您的二进制文件不是 允许的客户 /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport 对于体系结构 arm64 clang:错误:链接器命令失败并退出 代码 1(使用 -v 查看调用)

注意:使用代码签名身份覆盖:iPhone 开发者注意: 按依赖顺序构建目标 ** 测试构建失败 **

Beta 的任何问题或设置它所需的任何进一步偏好。

【问题讨论】:

标签: ios appium-ios xcode14


【解决方案1】:

由于 Xcode 更新到 14.0 而出现同样的问题

因此,如果您不需要在 14.0 版本上工作,只需将您的 Xcode 降级到 13.4(或类似)版本,它应该可以工作。

您可以从苹果开发者页面下载

希望这可以帮助!

【讨论】:

  • 我只需要检查 Xcode 14。
  • 我也无法降级:我的 Apium 服务器需要 Xcode 14 才能“看到”(通过命令xcrun xctrace list devices)连接的 iPhone 设备与 iOS 16。
  • 您是否尝试过安装设备支持工具?你可以从 GH 下载:github.com/filsv/iOSDeviceSupport
【解决方案2】:

从 Xcode 14 开始,XCTAutomationSupport 和其他私有框架都有一个可以与它们链接的库的白名单。该列表由 LC_SUB_CLIENT 加载命令指定。你可以看到谁被允许链接使用:otool -l XCTAutomationSupport | grep -A 2 LC_SUB_CLIENT

我发现绕过此限制的一种方法是:

  1. 使用允许的名称创建假库
  2. 链接假库时,指定它应该重新导出 XCTAutomationSupport:-reexport_framework XCTAutomationSupport
  3. 将需要 XCTAutomationSupport 的图像与您的假库链接,而不是将其与 XCTAutomationSupport 链接

    这是 an example 展示了如何在 Xcode 中进行设置。

【讨论】:

  • 我在获取列表时遇到错误,mac@static-251 % otool -l XCTAutomationSupport | grep -A 2 LC_SUB_CLIENT 错误:/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic:无法打开文件:XCTAutomationSupport(没有这样的文件或目录)
  • 试试这样:otool -l "$(xcrun --sdk iphonesimulator --show-sdk-platform-path)"/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport | grep -A 2 LC_SUB_CLIENT
  • 你能帮我一步一步地处理吗?
【解决方案3】:

@Solid Soft 您应该提供完整路径,例如: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport

【讨论】:

  • 框架和库中添加的框架,我只是在更新我的问题。
  • 您的答案可以通过其他支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写出好的答案的信息in the help center
【解决方案4】:

VincentYao here 的回答对我有用

我们需要将 WebDriverAgent 更新为v4.9.0

【讨论】:

    【解决方案5】:

    这是使用最新的 WebDriverAgent 4.10.2 (npm install -g appium@latest) 修复的。但是,如果您通过节点安装 appium,则 appium 版本仅为 1.22.3,并且不包含最新的 WDA。我建议从网站 (https://github.com/appium/WebDriverAgent/releases) 下载 WDA 并将其安装到您的设备上,然后使用功能“usePrebuiltWDA”= true 来绕过它。

    【讨论】:

      【解决方案6】:

      我有同样的问题并解决了降级 Xcode从 14.1 到 13.4.1

      不幸的是,Appium2 (2.0.0-beta.46) 无法在我的框架 (Katalon Studio) 上运行,所以我仍在使用 appium 1.22.3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-23
        • 2019-11-07
        • 2013-10-30
        • 2020-09-13
        • 1970-01-01
        • 2021-05-04
        • 2022-10-06
        • 2014-07-03
        相关资源
        最近更新 更多