M1 芯片的 Mac 上,使用 CocoaPods 管理的第三方库时,如果某些库不支持模拟器的 arm64 架构,可能会导致模拟器运行失败。这是因为 M1 芯片默认以 arm64 架构运行模拟器,而某些库可能只支持 x86_64 架构,不支持模拟器的arm64架构。
Xcode需配置
1、Build Settings--选择basic--在User-Defined下点击 ”+“
2、输入 ”EXLUDED_ARCHS“--debug和release选择Any iOs Simulator SDK,输入arm64
3、Build Settings下找到EXcluded Architectures 设置debug和release选择Any iOs Simulator SDK,输入arm64
4、Podfile 加入下面的代码
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# 设置 ARCHS 为 x86_64 和 arm64
config.build_settings['ARCHS'] = 'x86_64 arm64'
# 排除 arm64 架构(如果需要)
if config.name == 'Debug'
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
end
end
5、重新pod install
6、最后点击xcode的Buildtime(如下面的截图)自动适配代码即可。注:如果没出现就再跑一遍pod install。
上面修改的背景和原因:
M1 芯片的 Mac 使用ARM 架构,而传统的 Mac 和 iOS 模拟器使用x86_64 架构。
某些依赖库可能没有完全适配 ARM 架构,导致在 M1 芯片的 Mac 上运行 iOS 模拟器时出现编译错误。
通过排除模拟器环境下的 arm64 架构,可以强制依赖库以 x86_64 架构编译,从而解决兼容性问题。
修改后重新pod install 即可解决问题