Cocoapods 无法在新的 m1 mac Big Sur Xcode 上运行

Posted

技术标签:

【中文标题】Cocoapods 无法在新的 m1 mac Big Sur Xcode 上运行【英文标题】:Cocoapods won't work on new m1 mac Big Sur Xcode 【发布时间】:2021-03-31 17:11:57 【问题描述】:

我正在摆脱我 8 岁的 mac,并正在切换到新的 m1 macbook air,但我的旧项目都没有运行。我已经成功安装了 cocoapods,但是我的很多大项目都遇到了错误,即使在更新了所有 pod 并通过 Rosetta 运行所有内容之后也是如此。以下是我在 Xcode 中遇到的一些错误:

找不到目标的模块“PodName” 'x86_64-apple-ios-simulator';找到:arm64,arm64-apple-ios-simulator

没有这样的模块'PodName'

这些只是其中的一小部分,遇到了很多错误。我尝试更新这些 pod,重新安装它们等,但没有任何效果。有没有使用 m1 mac 的人在这方面取得过任何成功?

【问题讨论】:

你可以试试这个问题的最佳答案。 link here 【参考方案1】:

您可以调整项目架构或在 Podfile 的最后添加以下内容(并再次运行 pod update):

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

【讨论】:

这是把它带回家的最后一步。也许其他所有事情都有帮助,也许没有任何帮助(我相信这一切都有效),但如果没有这最后一步,模拟器将无法构建任何东西。对于设备来说,一切都会好起来的。谢谢你。这实际上比使用 Swift 包管理器效果更好,这实际上非常令人失望,但我们到了。再次感谢@Ichamp。 如果尽管使用了这个解决方案,你仍然得到一个错误,你需要检查项目的 iOS 部署目标。我应该最低iOS12。在我的项目中,它是 iOS11,在您的目标上将其更新为 iOS12,并且不要忘记在 podfile 上将其更改为平台:ios,'12.0'。【参考方案2】:

这似乎与此问题和答案有关:Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

基本上你需要做的是确保:

正在构建的架构设置为标准架构 (ARCHS_STANDARD) 为任何 iOS 模拟器添加“排除”架构设置并将其设置为 arm64

这应该可以让您启动并运行。

有一点需要注意(这让我很着迷):确保您没有拥有“有效架构”的构建设置 (VALID_ARCHS)。如果这样做,请完全删除该行。它给我带来了问题,因为它实际上忽略了 Apple 希望我们使用的新范式(架构 + 排除架构)。

最后,如果您没有看到 VALID_ARCHS 但您仍然无法运行它,那么对我有用的一件事(因为我也回到了一个旧项目)是:

添加 VALID_ARCHS 并将其设置为标准架构 构建应用程序(按预期获取错误) 删除该行 重新构建应用程序

【讨论】:

@KazimWalji 如果可行,请将此答案标记为已接受的答案。 谢谢你。只需将 arm64 添加到排除的拱门对我有用!【参考方案3】:

这让我很困惑。

您需要在项目中的 pod 文件中添加以下行。

config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

为每个构建配置添加它。执行此操作的完整代码是:

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

在 M1 机器上,您也有可能需要使用 x86_64 架构编译您的 pod。为此,请运行以下命令:

arch -x86_64 pod install

您可以查看构建多架构的完整解决方案here。

【讨论】:

以上是关于Cocoapods 无法在新的 m1 mac Big Sur Xcode 上运行的主要内容,如果未能解决你的问题,请参考以下文章

MAC电脑M1M2Cocoapods问题

来自 Electron 的 M1 mac 上的 Emacs 崩溃

在 Mac 10.12 上使用哪个 cocoapods 版本,如果 Restkit 是依赖项

在新的 macbook pro M1 上安装错误 pod

如何在 Apple Silicon M1 上原生安装 NodeJS?

在新的 MacBook Air M1 上安装 Pandas 时遇到问题 [关闭]