上架App Store必须使用iOS Distribution (App Store and Ad Hoc)证书、显式Bundle ID、App Store类型描述文件、匹配的.p12私钥及应用专用密码,四者须严格一致,否则导致上传失败或审核被拒。

苹果开发者账号和证书类型必须匹配上架用途
uni-app 打包 iOS App 上架 App Store,必须用 iOS Distribution 类型的证书(不是 Development,也不是 Apple Development),否则打包出来的 .ipa 会被苹果拒绝上传或审核失败。很多人卡在“上传成功但构建版本不显示”或“Transporter 报错 ITMS-90164”,根源就是用了开发证书或企业证书混搭了 App Store 描述文件。
- 证书类型必须选
iOS Distribution (App Store and Ad Hoc)—— 苹果官网创建时下拉菜单里明确带这串文字的才是对的 - Bundle ID(即
App ID)必须与manifest.json中的name字段完全一致,且不能含通配符(如com.myapp.*),必须是显式 ID(如com.myapp.main) - 描述文件(
.mobileprovision)类型也必须是App Store,不能是Ad Hoc或Development;它要同时关联上一步生成的 Distribution 证书 + 刚注册的 Bundle ID - 私钥证书
.p12文件导出时设的密码,后续在 HBuilderX 云打包里要原样输入——输错一次,打包会静默失败,日志只报“签名错误”,不提示密码问题
HBuilderX 云打包时三个文件必须一一对应
云打包不是“上传了就能过”,关键在于三者绑定关系:证书(.p12)→ 对应苹果开发者中心签发的 .cer → 再关联到同一个 App ID 的 .mobileprovision。只要其中任一环节 ID 不一致(比如证书绑的是 com.app.dev,而 profile 绑的是 com.app.prod),打包出来的 ipa 就无法通过苹果校验。
-
AppID (Bundle ID):填 manifest.json 里name的值,例如com.example.myapp,前后不能有空格、斜杠或大写字母 -
profile 文件:必须是苹果后台下载的.mobileprovision,不能是旧版或本地生成的无效文件;HBuilderX 会校验其有效期和签名,过期直接报错 -
私钥证书 (.p12):必须由你本人用同一台 Mac(或同一套 OpenSSL 流程)生成,不能拿别人导出的 .p12 配别人的 profile —— 即使密码对,签名链也会断 - 图标必须是直角 PNG,尺寸齐全(至少 1024×1024),且不能含 alpha 通道;否则打包成功但 App Store Connect 上传后提示 “Invalid Icon”
没 Mac 怎么安全生成 CSR 和 P12?别用在线工具传私钥
Windows 下没有钥匙串,但绝不能把私钥(privatekey.key)上传到任何第三方网站生成 CSR 或 P12——这是高危操作。推荐两种可控方式:
- 用
OpenSSL命令行本地生成:openssl genrsa -out privatekey.key 2048openssl req -new -sha256 -key privatekey.key -out my.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/CN=myapp.com"—— 全程不联网,CSR 只含公钥信息,可放心上传苹果后台 - 用
Appuploader(Windows 友好):它只在本地调用系统级证书 API,不上传私钥;生成的.p12文件保存在你电脑上,全程离线 - 香蕉云编、myssl 等在线工具虽方便,但需上传
.cer+ 输入私钥密码才能导出 P12,存在中间泄露风险,不建议用于正式上架证书
上传 IPA 后 App Store Connect 不显示构建版本?检查专用密码和两步验证
用 Appuploader 或 Transporter 上传成功,但在 App Store Connect → My Apps → xxx → Build 页面看不到新版本,大概率是苹果账户启用了双重认证,但你没生成并使用 App-Specific Password(应用专用密码)。
- 专用密码不是 Apple ID 登录密码,必须去
appleid.apple.com→ 安全 → “生成密码” 手动创建,名称建议写appuploader-2026方便识别 - 上传工具里填的账号是 Apple ID 邮箱,密码栏必须填这个专用密码,不是主密码;输错一次,后续上传会持续失败,且错误提示极模糊(如 “Authentication Failed”)
- 上传完成后,App Store Connect 不会立即刷新构建列表,通常需 2–10 分钟;若超 30 分钟仍无,检查
Bundle ID是否与后台新建 App 时填写的一致(大小写、点号都不能错)
苹果证书和描述文件本质是一条信任链,断一环就全盘失效。最常被忽略的不是技术步骤,而是“一致性”——Bundle ID、证书类型、描述文件类型、上传账号权限,四者必须严丝合缝。稍有偏差,错误往往不报在打包时,而卡在上传后或审核中,排查成本极高。










