Flutter macOS编译失败:MACOSX_DEPLOYMENT_TARGET版本错误及权限问题
解决Flutter macOS编译的两个常见问题
一、MainMenu.xib编译失败(目录错误/权限拒绝)
- 彻底清理构建缓存:
- 执行终端命令:
flutter clean - 打开Xcode,按
Shift+Cmd+K清理Build Folder - 手动删除Xcode的Derived Data:打开Xcode偏好设置 -> Locations,点击Derived Data旁的箭头,删除对应项目的文件夹
- 执行终端命令:
- 检查并修复目录权限:
确认macos/Runner/Resources目录存在,Finder中右键该文件夹选择「显示简介」,在「共享与权限」中确保当前用户拥有「读写」权限,必要时点击锁图标解锁后修改 - 重新生成MainMenu.xib:
备份现有macos/Runner/Resources/MainMenu.xib后删除,终端执行flutter create --platforms macos .(末尾的点表示复用现有项目配置)重新生成模板文件 - 验证Xcode构建路径:
打开macos/Runner.xcworkspace,选中Runner项目,进入Build Settings -> Build Locations,确认「Build Products Path」和「Intermediate Build Files Path」无特殊字符或不存在的目录
二、MACOSX_DEPLOYMENT_TARGET仍存在10.11的情况
- 统一Xcode项目的部署目标:
打开macos/Runner.xcworkspace,选中Runner项目,Build Settings中搜索MACOSX_DEPLOYMENT_TARGET,将所有Target(包括Runner、FlutterPluginRegistrant等第三方插件Target)的部署目标都设为10.13 - 完善Podfile的post_install脚本:
修改macos/Podfile中的脚本,确保覆盖Pods项目本身和所有Target:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.13' end end # 同步设置Pods项目本身的部署目标 installer.pods_project.build_configurations.each do |config| config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.13' end end - 重新安装Pods:
终端进入macos目录,执行:pod deintegrate pod install - 升级Flutter SDK:
旧版本Flutter可能强制注入旧部署目标,执行flutter upgrade升级到最新稳定版后重新构建
内容的提问来源于stack exchange,提问作者ApiShiro
相关产品推荐
相关产品推荐

