GitHub Actions构建Flutter macOS应用报错:macos_assemble.sh不存在
解决GitHub Actions构建Flutter macOS应用时FLUTTER_ROOT指向fvm路径的问题
核心原因
本地使用fvm时,Flutter生成的macos配置文件(如Generated.xcconfig)会硬编码FLUTTER_ROOT为.fvm/flutter_sdk,若该文件被提交到仓库,GitHub Actions环境(未用fvm)就会读取错误路径导致构建失败。
解决步骤
清理本地fvm残留配置并重新生成
执行flutter clean清除旧构建缓存,然后在本地非fvm环境下重新生成macos配置:flutter create --platforms macos .确认生成的
macos/Runner/Generated.xcconfig中FLUTTER_ROOT指向系统常规Flutter路径,而非fvm目录。在GitHub Actions中强制覆盖FLUTTER_ROOT
在CI workflow脚本里,安装指定版本Flutter后,直接重写Xcode配置文件:- name: Install Flutter uses: subosito/flutter-action@v2 with: flutter-version: '3.13.0' # 替换为你的项目Flutter版本 - name: Override FLUTTER_ROOT in Xcode config run: | echo "FLUTTER_ROOT=${FLUTTER_ROOT}" > macos/Runner/Generated.xcconfig此操作会强制Xcode使用CI环境中安装的Flutter路径。
检查Xcode项目构建设置
打开本地Xcode项目,进入Runner target的Build Settings,搜索FLUTTER_ROOT,确保它是从Generated.xcconfig继承的(值为$(inherited)),而非硬编码的fvm路径。忽略fvm相关文件到版本控制
在.gitignore中添加以下规则,避免提交本地fvm配置到仓库:.fvm/ macos/Runner/Generated.xcconfig
内容的提问来源于stack exchange,提问作者Maximilian Fornacon
相关产品推荐
相关产品推荐

