Flutter iOS构建失败:codesign签名错误求助
报错核心信息
error: Target debug_ios_bundle_flutter_assets failed: Exception: Failed to codesign /Users/mohammedalghurairi/Library/Developer/Xcode/DerivedData/Runner-fpfnxymfuwkswxabxobwfhbmujgy/Build/Products/Debug-iphonesimulator/App.framework/App with identity -.
/Users/mohammedalghurairi/Library/Developer/Xcode/DerivedData/Runner-fpfnxymfuwkswxabxobwfhbmujgy/Build/Products/Debug-iphonesimulator/App.framework/App: replacing existing signature
/Users/mohammedalghurairi/Library/Developer/Xcode/DerivedData/Runner-fpfnxymfuwkswxabxobwfhbmujgy/Build/Products/Debug-iphonesimulator/App.framework/App: resource fork, Finder information, or similar detritus not allowed
Failed to package /Users/mohammedalghurairi/code2/khlea2.
项目pubspec.yaml配置
name: khlea2 description: A new Flutter project. publish_to: 'none' version: 0.1.0+1 environment: sdk: '>=3.0.1 <4.0.0' dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.5 align_positioned: ^3.0.0 path_provider: ^2.0.15 url_launcher: ^6.1.10 matrix4_transform: ^2.0.1 firebase_core: ^2.12.0 firebase_auth: ^4.6.0 cloud_firestore: ^4.7.1 sqflite: ^2.2.8 google_mobile_ads: ^3.0.0 assets_audio_player: ^3.0.6 path: any intl: ^0.18.1 dev_dependencies: flutter_test: sdk: flutter flutter_launcher_icons: ^0.13.1 flutter_lints: ^2.0.1 flutter_icons: android: "launcher_icon" ios: true remove_alpha_ios: true image_path: "assets/images/icon.png" flutter: uses-material-design: true assets: - assets/images/ - assets/audios/ - assets/data/
解决方案
报错原因是项目资源文件包含Finder信息或资源分支数据,iOS签名工具不允许这类文件存在,按以下步骤处理:
清理项目资源冗余数据
打开终端进入项目根目录,执行命令删除所有文件的扩展属性:xattr -cr .该命令会递归清除当前目录下所有文件的Finder信息、资源分支等冗余数据。
清理Flutter与Xcode缓存
- 清除Flutter缓存:
flutter clean - 进入iOS目录,重置Pod依赖:
cd ios pod deintegrate pod install cd .. - 删除Xcode DerivedData目录:
执行命令删除对应项目的DerivedData文件夹:rm -rf ~/Library/Developer/Xcode/DerivedData/Runner-fpfnxymfuwkswxabxobwfhbmujgy
- 清除Flutter缓存:
重新构建项目
执行Flutter构建命令:flutter run ios或直接在Xcode中选择目标设备点击运行按钮重新构建。
排查资源文件来源
若问题反复出现,检查图片、音频等资源是否从Mac Finder直接复制(这类文件易携带Finder信息),建议重新从原始渠道获取资源,或复制后用xattr -cr命令处理。
内容的提问来源于stack exchange,提问作者Mohammed Ali

