Mac M1 Pro设备Flutter macOS项目编译失败(CodeSign错误)
解决Flutter macOS编译CodeSign失败问题
针对你遇到的「resource fork, Finder information, or similar detritus not allowed」导致的CodeSign失败问题,按以下步骤解决:
快速修复方案
- 在项目根目录执行命令,清除所有文件的扩展属性:
xattr -cr . - 重新执行构建流程:
flutter clean flutter pub get flutter run -d macos
备选方案(若上述方法无效)
打开项目的macOS Xcode工程(macos/Runner.xcworkspace),做以下操作:
- 选中Runner target,进入Build Settings,搜索
Code Signing Resource Rules Path,设置值为$(SDKROOT)/ResourceRules.plist - 或者添加Run Script构建阶段:
- 进入Build Phases,点击
+选择New Run Script Phase - 在脚本框中输入:
find "${CODESIGNING_FOLDER_PATH}" -type f -exec xattr -c {} \; - 将这个Run Script移到
Code Sign阶段之前
- 进入Build Phases,点击
问题原因
macOS代码签名机制会严格检查待签名包内的文件,资源叉(以._开头的隐藏文件)、Finder元数据这类冗余信息会触发签名失败,M1架构设备在文件生成或复制过程中较易产生这类数据。
内容的提问来源于stack exchange,提问作者Anjana Sharma Poudel
相关产品推荐
相关产品推荐

