iOS Flutter应用TestFlight新版本安装失败:签名验证问题求助
关键排查与修复步骤
重新核对签名与描述文件匹配性
哪怕已经迁移密钥,新电脑可能存在缓存问题。打开Xcode的Signing & Capabilities面板:- 确认使用的是Apple Distribution分发证书,而非开发证书
- 描述文件选择App Store类型,Bundle ID匹配,且证书与描述文件内的证书信息一致
- 手动清理Xcode签名缓存:前往
~/Library/MobileDevice/Provisioning Profiles删除所有文件,再重新下载对应描述文件
显式指定编译的签名配置
试试在编译命令中加入导出配置文件,直接使用旧电脑备份里的ExportOptions.plist(旧归档目录中可找到):flutter build ipa --release --obfuscate --split-debug-info=ios/debug --export-options-plist=ExportOptions.plist确保plist文件里的
signingCertificate值为Apple Distribution,provisioningProfiles对应正确的Bundle ID和描述文件UUID检查归档包的签名完整性
用Xcode打开生成的Runner.xcarchive,右键点击Products/Applications/Runner.app选择Show in Finder,执行以下命令检查签名:codesign -dv --verbose=4 Runner.app查看输出的
Authority字段,必须包含Apple Worldwide Developer Relations Certification Authority和Apple Root CA,缺少则说明签名无效核对Apple Developer后台配置
登录开发者网站,确认分发证书未过期、未被撤销;App ID的权限配置(如推送、HealthKit等)与旧电脑一致,且描述文件包含这些权限彻底清理缓存后重新编译
执行以下命令清理缓存,再重新编译:flutter clean rm -rf ios/Pods ios/Podfile.lock pod install flutter build ipa --release --obfuscate --split-debug-info=ios/debug直接恢复旧电脑的iOS目录
既然能访问旧电脑备份,将旧项目里的ios目录完整复制到新电脑项目中覆盖,避免构建设置遗漏。之后重新运行pod install和编译命令,确保Xcode配置与旧电脑完全一致
内容的提问来源于stack exchange,提问作者Szabolcs Szekelyi

