xcodebuild 给出了 AMSupportURLConnectionDelegate 和 AMSupportURLSession 的多重实现的错误:"Which one is undefined."

xcodebuild gives an error for multiple implementation of AMSupportURLConnectionDelegate and AMSupportURLSession : "Which one is undefined."

当我想要 运行 任何 xcodebuild 操作时,它会给我以下错误,而 Xcode ide 在 Apple M1 上运行良好。

> xcodebuild -version
objc[72320]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libauthinstall.dylib (0x1dc35ab90) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x105ca42c8). One of the two will be used. Which one is undefined.
objc[72320]: Class AMSupportURLSession is implemented in both /usr/lib/libauthinstall.dylib (0x1dc35abe0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x105ca4318). One of the two will be used. Which one is undefined.
Xcode 13.2.1
Build version 13C100

类 都在 /usr/lib/libauthinstall.dylib 中实现,而且我也是另一个模块,所以我想检查 /usr/lib/libauthinstall.dylib 但它不可访问

> open /usr/lib/libauthinstall.dylib
The file /usr/lib/libauthinstall.dylib does not exist.

我在 M1 上又遇到了同样的问题。看起来 xcodebuild 可执行文件是基于英特尔的。如果 xcodebuild 进程是从 Rosetta 下的终端 运行 启动的,则不会显示该错误。

我的 Xcode 是从 App Store 安装的。

通过删除 Xcode 并安装来自 https://download.developer.apple.com/Developer_Tools/Xcode_13.3_beta/Xcode_13.3_beta.xip

的 13.3 Xcode beta,设法在没有 Rosetta 的终端上修复它

现在 xcodebuild 可执行文件已针对 Apple 芯片进行编译,问题已解决。

我通过将 arm64 添加到排除的架构来解决。

解决步骤:

  1. 点击您的目标
  2. 单击构建设置选项卡
  3. 确保选择了“全部”选项卡
  4. 在“排除的架构”下展开调试/发布/其他阶段
  5. 在“任何iOS模拟器SDK
  6. 旁边添加“arm64”