上传 IPA 到 App Store 时遇到 “Invalid Signature” 或者 “Application failed codesign verification” 的报错,通常和签名环节有关,不一定是证书本身的问题。从几个方向排查,一般能定位。

证书类型不正确

Invalid Signature 最常见的原因是用了开发证书打包。开发证书签名的 IPA 只能安装到添加了 UDID 的测试设备,不能提交上架。上传 App Store 必须使用发布证书(iOS Distribution)签名的 IPA。

检查方式:在 Appuploader 的证书管理里看证书类型。Development 类型是开发证书,Distribution 类型才是发布证书。如果证书列表里没有发布证书,需要先创建一个。创建时选 iOS Distribution,填名称和密码,工具自动从 Apple 服务器生成。

打包时也需要选择对应的发布描述文件(App Store 类型),确保描述文件引用的证书是发布证书。

证书和描述文件不匹配

描述文件绑定了特定的证书。如果描述文件引用的是证书 A,但打包时实际用的是证书 B,签名校验会失败。

排查方法:查看描述文件的内容,里面包含了证书信息和 Bundle ID。在 Appuploader 的描述文件管理里可以查看.mobileprovision 文件的详细信息,确认里面的证书信息和打包用的证书一致。如果不匹配,重新生成描述文件并选择正确的证书。

重新签名导致的签名损坏

IPA 如果先被解包修改过(比如做了代码混淆或者资源替换),再用另一个证书重新签名,签名链可能断裂。特别是做了代码混淆后,可执行文件的签名会失效。

IpaGuard 等混淆工具处理完 IPA 后,需要重新走签名流程。如果用开发证书做了混淆后的测试验证,上架前要记得切换到发布证书重新签名。新签名的证书类型不能混用。

私钥缺失

签名需要两个东西:证书(公钥)和对应的私钥。如果电脑上只导入了 P12 证书文件但没有对应的私钥,签名校验会不通过。在 Appuploader 里重新生成证书时会自动包含私钥,生成的 P12 文件需要妥善保存。换了电脑操作时,需要把原来生成证书的 P12 文件导入到工具中,而不是重新生成一个同名证书。

Appuploader 重新上传

修正签名问题后,递增版本号重新打包。在 Appuploader 的提交上传界面选择新的 IPA,填写专用密码后点击上传。上传成功后等 10-30 分钟构建版本出现。如果还是 Invalid Signature,检查邮件中的具体错误代码。Apple 会在上传失败后发送邮件到开发者账号对应的邮箱,邮件中会指出具体的签名问题。

其他可能的原因

App 图标包含 alpha 通道或者 Bundle ID 不匹配也会导致签名验证失败,这类错误一般会有更具体的描述。Bundle ID 不一致的报错通常是 “No suitable application records found”,图标问题会提示 ITMS-90717。