出海账号、上架与投放问题,Telegram 直接问@gooacc
应用发布约 4 分钟读完

苹果上架要用的证书和描述文件

苹果上架时的签名报错,多半是三样东西没对上:证书、App ID、描述文件。先分清它们,再决定用自动签名还是手动签名。

01三样东西各管什么

文件作用上架时用哪一个
证书证明这个包是你的开发者账号签的发给 App Store 用 Distribution(发布)证书
App ID应用的唯一标识,后缀就是 Bundle ID和 Xcode、App Store Connect 里的包名必须相同
描述文件把证书、App ID 和分发方式绑在一起上架用 App Store 类型,不是 Ad Hoc

Bundle ID 一旦用于上架就不要改。推送、登录、内购等能力开在这个 App ID 上,和第三方 SDK 也绑在这个包名上。

02开发和发布不要混用

  • 开发证书:装到自己的测试设备上调试,不能拿去提交 App Store。
  • 发布证书:用来归档并上传。用它打出来的包不能直接装到手机上,这是正常的。
  • Ad Hoc 描述文件:装给最多 100 台登记过 UDID 的设备,用来小范围测试,不是上架通道。
  • 企业描述文件属于 Enterprise 计划,不能用来把应用公开装到任意用户手机上。

证书一般一年到期。到期后已上架的应用不会立刻从商店消失,但你无法再上传新构建,直到换发证书并重新签名。

03推荐路径:让 Xcode 管签名

  1. Xcode 登录付费开发者账号。
  2. 目标选 Automatically manage signing,Team 选对。
  3. Bundle ID 与 App Store Connect 里创建应用时的一致。
  4. 需要的能力在 Signing & Capabilities 里打开,保存后 Xcode 会更新描述文件。
  5. 选 Any iOS Device,Product → Archive,再用 Organizer 或 Transporter 上传。

团队里不要每人各做一套证书。一个人开启自动签名,其他人用同一团队账号拉取即可。

04必须手动做时

在 Mac 的钥匙串访问里生成证书请求(CSR),把 CSR 上传到开发者网站换取证书。私钥留在这台 Mac 上,不要把私钥交给网站或聊天记录。

  • 先建 App ID,再选发布证书,再生成 App Store 描述文件。
  • 打包工具里同时选中发布证书和对应的描述文件。
  • 报错先看三处包名是否一致,再看证书有没有过期、描述文件是不是 Development。

05签名报错先对这张表

报错大概在说先看
找不到签名证书发布证书是否过期,Xcode 是否登着正确的团队
描述文件不匹配描述文件里的 Bundle ID 和工程是不是同一个
缺少私钥证书是在另一台电脑上生成的,私钥没有在这台 Mac 上
用了开发描述文件上架要换成 App Store 类型,不是 Development

对上之后只改一项再打包。一次改证书、包名和描述文件,下次就分不清是哪一项好了。

问常见问题

没有 Mac 能做发布证书吗?

CSR 和私钥应在你自己控制的电脑上生成。借用云端 Mac 可以,但不要把私钥上传到来路不明的在线生成网站。

自动签名和手动签名能一起开吗?

同一个目标不要混用。自动签名开启时,再手动指定另一份描述文件,很容易签到错误的包。

换了证书,用户要重装吗?

同一团队、同一 Bundle ID 下更新证书,商店里的用户收到的是正常更新,不用卸载。

所属专题:iOS 开发者 App 上架

需要落地协助?

账号、上架、投放的具体情况各不相同,把你的情况发给我们,一起看怎么做最稳。

@gooacc