該問題產(chǎn)生的大環(huán)境是使用 M 系列芯片的電腦在 iOS 模擬器上運行 Flutter App:
然后有一些三方庫就會有以下報錯信息:
Xcode building for iOS Simulator, but linking in an object file built for iOS, for architecture 'arm64'
理論上來說一般的 iOS 項目其實只要開啟模擬器的 Rostta 模式就可以完美解決該問題:
在 Xcode 的頂部菜單欄
1、Product => Destination => Destination Architectures => Show Rosetta Destinations;
2、然后選擇相應(yīng)的模擬器直接運行;
這時候模擬器后面就會帶 Rosetta 的標志:iPhone 14 Pro Max (Rosetta)
但是 Flutter 項目運行 Debug 模式這樣配置無效,可以采用另外一種通過在 Podfile 文件里面添加編譯配置的方案:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
# 兼容 Flutter 2.5
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'i386 arm64'
end
end
end
以上