Cocoapods项目未能在Apple Silicon/M1 Mac上构建



在您认为这是重复之前:

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

设置

  • 椰子1.10.1
  • 茧配置已启用generate_multiple_pod_projectsincremental_installation
  • 终端设置为使用罗塞塔2解决Cocoapods的问题
  • 使用了几个库,如Firebase、RxSwift等和NearbyMessages

问题

编译该项目(在英特尔计算机上运行(会为谷歌的NearbyMessages库产生以下错误:

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添加到";排除的体系结构";并设置";仅构建活动体系结构";为YES(默认值(。其他帖子说后者应该是NO。将其设置为NO会给我错误No such module 'RxSwift'

将臂64添加到";排除的体系结构";也意味着我需要对Pod文件中所有生成的项目进行以下后安装(因为我使用的是generate_multiple_pod_projects(:

post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
end
end

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

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

config.build_settings[quot;EXCLUDED_ARCHS[sdk=iphonesimulator*]"]="臂64e";

开始时e结束。

相关内容

  • 没有找到相关文章

最新更新