Cocoapods 项目无法在 Apple Silicon / M1 Mac 上构建

问题描述

在您认为这是重复之前:

关于这个失败的帖子有好几篇,但大多数是与 M1 Mac 无关的旧帖子,有些有相互矛盾的解决方案。这篇文章仅适用于使用 Cocoapods 并具有以下设置的 M1 Mac:

设置

  • Cocoapods 1.10.1
  • Cocoapods 配置启用了 isSelectedgenerate_multiple_pod_projects
  • 终端设置为使用 Rosetta 2 来解决 Cocoapods 的问题
  • 使用了多个库,例如 Firebase、RxSwift 等和 NearbyMessages

问题

编译项目(在英特尔计算机上运行)会为来自 Google 的 NearbyMessages 库产生以下错误

incremental_installation

最常见的建议是将 arm64 添加到“Excluded Architectures”并将“Build Active Architectures Only”设置为 YES(这是认设置)。 Other posts 说后者应该是 NO。将此设置为“否”会给我错误 In /Users/user/Pods/NearbyMessages/Libraries/libGNSMessages.a(GNSAudioModem.o),building for iOS Simulator,but linking in object file built for iOS,file '/Users/user/Pods/NearbyMessages/Libraries/libGNSMessages.a' for architecture arm64

将 arm64 添加到“排除的架构”还意味着我需要将以下安装后安装到 Pod 文件中的所有生成的项目(因为我使用的是 No such module 'RxSwift'):

generate_multiple_pod_projects

我想了解的是这是否是正确的方法。不仅尝试不同的设置并希望获得最佳效果,还要了解为什么这会有所帮助。当M1芯片是arm64时,为什么要排除arm64?我是否使用了错误解决方案?任何帮助将不胜感激。

解决方法

NearbyMessages 二进制 pod 分发版尚未更新切片以支持 M1 Mac。因此,无法将其链接到应用程序并为模拟器构建。