iOS 上传 App Store 时,ITMS-90035 是一个典型的签名错误。很多人第一次看到时会以为 IPA 损坏了,但实际情况里,这个错误更多和 证书、描述文件、签名方式、导出方式有关。

尤其在 Flutter、uni-app、React Native、HBuilderX、Jenkins 自动构建,这些场景里更容易出现

ITMS-90035 是什么

错误信息一般类似ERROR ITMS-90035:Invalid Signature,或者This bundle is invalid

Apple 的意思是上传的 IPA 签名校验失败

错误发生在哪

需要先区分:

阶段 是否属于 ITMS-90035
Xcode Archive 失败
IPA 安装失败 不一定
上传后被 Apple 拒绝
Processing 失败 很可能

最常见的问题,证书类型不匹配

这是实际项目里出现最多的情况。

例如使用了 Development 证书,但上传目标是 App Store,这种情况下 IPA 可以生成,真机可能能安装,上传失败
正确做法是上传 App Store 必须使用:

类型 用途
iOS Distribution App Store 发布
App Store Profile App Store 上传

另一个高频问题:描述文件和证书不一致,例如:

项目 实际类型
证书 Distribution
Profile Development

或者反过来。


如何检查描述文件

打开.mobileprovision文件,重点检查:

字段 内容
Name Profile 名称
TeamIdentifier 团队
Entitlements 权限
ProvisionedDevices 是否测试版
ProvisionsAllDevices 企业版

检查 Bundle ID 是否一致

一个容易忽略的问题:Profile 中的 App ID 和实际打包 Bundle ID不一致,例如:Profile:com.demo.app,但实际是com.demo.test,上传时 Apple 会直接判定签名无效。

uni-app 场景里的典型问题

在 HBuilderX 云打包中,经常看到Profile 文件中的应用标识与包名不匹配原因就是manifest.json、Bundle ID、mobileprovision 三者不一致。

重新生成证书

出现这些问题更省时间的方法是重新生成完整签名,包括 Bundle ID、证书、描述文件 一起重新生成。

Windows 环境里如何重新生成,这里可以直接使用 AppUploader(开心上架),在 Windows 中完成 Bundle ID 管理、Distribution 证书创建、App Store 描述文件生成、IPA 上传,不依赖 Xcode和钥匙串

第一步:确认 Bundle ID

例如,com.company.app,确保Apple 后台、打包配置、Profile 全部一致。

第二步:重新创建 Distribution 证书

不要继续使用旧 Development 证书。

第三步:重新创建 App Store Profile

注意不要选 Development 类型

第四步:重新导出 IPA

如果是 XcodeExport → App Store Connect,不要Ad Hoc

Jenkins / Fastlane 场景里的问题

CI 环境中容易出现证书存在,但私钥丢失的情况,表现为本地能上传但是Jenkins 上传失败这是因为P12 不完整

所以要检查 IPA 是否真的被正确签名

解压 IPA 命令:unzip app.ipa,查看Payload/App.app,检查"_CodeSignature""embedded.mobileprovision"是否存在。

上传工具导致的问题

最近 Apple 对旧上传协议限制越来越严格,如果看到Deprecated Transporter usage,说明上传工具过旧或者 Transporter 协议被弃用

这时可以升级上传工具或者使用新上传通道。

CLI 上传更容易定位日志

GUI 上传很多错误会被折叠,CLI 更容易看到"metadata"、“transporter”、“signing”、"upload session"的完整日志。例如:

appuploader_cli upload \
-f app.ipa \
-u user@example.com \
-p xxxx-xxxx-xxxx-xxxx \
--type ios

最后可以把问题归纳成:

类型 是否高频
证书类型错误 很高
Profile 类型错误 很高
Bundle ID 不一致 很高
私钥缺失
上传协议过旧
IPA 损坏

ITMS-90035 本质上是 Apple 在校验这份 IPA 是否来自合法完整的签名,因此排查重点不在“上传按钮”,而在证书、描述文件、Bundle ID、导出方式这些环节是否一致。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐