Dart版ObjectBox在M1芯片Mac的iOS环境下编译失败如何解决?
解决M1芯片Mac下Dart版ObjectBox iOS端编译失败方案
前置排查确认
- 确认你已完成官方要求的基础配置:iOS部署目标 ≥ 11.0、替换
ARCHS_STANDARD为ARCHS_STANDARD_64_BIT、已执行pod install/pub upgrade同步依赖
针对性修复步骤
- 添加arm64排除架构配置
打开Xcode项目,在Build Settings->Excluded Architectures中,对Debug和Release模式均添加arm64,同时对Pod项目执行相同配置,也可以直接在Podfile末尾添加以下代码自动配置,避免每次执行pod install后配置被重置:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
添加后执行pod deintegrate && pod install重新生成Pod项目。
2. 全量清理缓存重新编译
执行以下命令清理所有本地缓存文件,避免残留旧配置导致编译失败:
flutter clean rm -rf ios/Pods rm ios/Podfile.lock rm pubspec.lock flutter pub get cd ios && pod install
- 模拟器运行适配(仅针对模拟器编译失败场景)
如果是编译iOS模拟器时报错,右键点击Dock中的Xcode图标,选择「显示简介」,勾选「使用Rosetta打开」,重启Xcode后重新编译即可。 - ObjectBox版本校验
确认你使用的objectbox、objectbox_flutter_libs、objectbox_generator三个依赖版本完全一致,优先升级到最新稳定版,避免版本不兼容问题。
若以上步骤都执行后仍报错,可检查Xcode编译日志中的具体错误码,确认是否为其他第三方依赖冲突导致的架构兼容问题。
内容的提问来源于stack exchange,提问作者Ioseph Magno
相关产品推荐
相关产品推荐

