在您认为这是重复之前:
关于这一失败,有几个帖子,但大多数都是与M1 Mac无关的旧帖子,有些帖子的解决方案相互矛盾。这篇文章只适用于M1 Mac使用Cocoapods与以下设置:
设置
- 椰子1.10.1
- 茧配置已启用
generate_multiple_pod_projects
和incremental_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结束。