Flutter IPA上传TestFlight失败:路径过长致资产验证错误
解决Flutter IPA上传TestFlight报错90947(路径过长)的方案
问题根源
从报错路径能明确看出:iOS的IPA包中意外混入了Android构建流程产生的flutter_assets文件,导致路径出现多层嵌套(比如flutter_assets/android/app/build/...),超出Apple对包内文件路径的字节限制,触发90947资产验证失败。
具体解决步骤
彻底清理构建缓存
- 执行Flutter全局清理:
flutter clean - 进入iOS项目目录,清理Pod缓存并重新安装:
cd ios rm -rf Pods Podfile.lock pod deintegrate pod install - 手动删除Xcode的DerivedData缓存:找到
~/Library/Developer/Xcode/DerivedData目录,删除对应项目的文件夹。
- 执行Flutter全局清理:
检查并修正资源配置
打开项目根目录的pubspec.yaml,确认flutter -> assets节点下没有错误引入Android目录下的文件(比如- android/app/build/...这类无效路径),只保留跨平台需要的资源文件路径。重新打包并上传
- 使用Flutter命令重新构建Release版本IPA:
flutter build ipa --release - 打开生成的归档文件,通过Xcode或Transporter重新上传TestFlight。
- 使用Flutter命令重新构建Release版本IPA:
验证包结构(可选)
将IPA文件后缀改为.zip并解压,查看Runner.app/Frameworks/App.framework/flutter_assets目录,确认没有嵌套的Android构建路径,确保资源路径简洁合规。
额外建议
如果上述步骤无效,建议升级Flutter版本到最新稳定版(当前使用的3.3.10版本较旧,可能存在打包逻辑bug),升级后重复清理、构建流程。
内容的提问来源于stack exchange,提问作者Yash Srivastava
相关产品推荐
相关产品推荐

