如何解决Cocoapods 不适用于新的 m1 mac Big Sur Xcode
我正在摆脱我 8 岁的旧 mac,并切换到新的 m1 macbook air,但我的旧项目都没有运行。我已经成功安装了 cocoapods,但是我的很多大项目都遇到了错误,即使在更新所有 pod 并通过 Rosetta 运行所有内容之后也是如此。以下是我在 Xcode 中遇到的一些错误:
找不到目标的模块“PodName” 'x86_64-apple-ios-模拟器';发现:arm64,arm64-apple-ios-simulator
没有这样的模块'PodName'
这些只是少数,遇到了很多错误。我尝试更新这些 pod,重新安装它们等,但没有任何效果。有没有人用 m1 mac 成功过这个?
解决方法
您可以调整项目架构或在 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
,
这似乎与这里的问题和答案有关:Xcode 12,building for iOS Simulator,but linking in object file built for iOS,for architecture arm64
基本上你需要做的是确保:
- 正在构建的架构设置为标准架构 (
ARCHS_STANDARD
) - 为 Any iOS Simulator 添加“排除”架构设置并将其设置为
arm64
这应该能让你开始工作。
需要注意的一件事(让我困扰了一段时间):确保您没有具有“有效架构”(VALID_ARCHS
) 的构建设置。如果这样做,请完全删除该行。它给我带来了问题,因为它实际上忽略了 Apple 希望我们使用的新范式(架构 + 排除的架构)。
最后,如果您没有看到 VALID_ARCHS
但仍然无法运行它,对我有用的一件事(因为我也回到了一个旧项目)是:
- 添加
VALID_ARCHS
并将其设置为标准架构 - 构建应用(按预期获取错误)
- 删除该行
- 重新构建应用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。