我正在尝试在配备 M1 处理器的 Mac 上使用 Xcode 14 中的 cocoapods 和大量 pod 来编译应用程序。该项目有 cocoapods,并且在旧 Mac 上完美运行。
编译时,我在导入时收到此错误:
没有这样的模块“devicekit”
如果我删除导入,导入中的每个 Pod 都会出现相同的错误。当我删除导入时,我得到这个:
在范围内找不到类型 X 类型 X 的值没有成员 Y
我尝试了在这样的帖子中找到的所有解决方案: 使用 Xcode 出现错误“没有这样的模块”,但框架就在那里
这些解决方案都不起作用,所以我确信这一定是由于使用 M1 mac 造成的。
终于发现这个问题了。
在 Pods 项目或每个 pod 构建配置中,您可以看到 Cocoapods 正在将“debug”
Build active architecture only
属性压缩为 YES
。
'Build active architecture only = YES'
在每个 Pod 中手动将其更改为
NO
,可以解决问题,但这不是解决问题的好方法。
您必须转到您的 podfile 并将其添加到底部:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
end
end
end
这将强制
NO
到 Build active architecture only
中的每个 pod,并且该项目将开始在您的 M1 mac 中编译。