ARTICLE · 1284167
IOS开发从苹果开发者账号注册到上架全流程实操分享(2):证书申请与Xcode导出
上一篇把苹果开发者账号注册的坑捋了一遍(IOS开发从苹果开发者账号注册到上架全流程实操分享(1):账号注册与避坑分享),账号到手只是入场券,真正的第一道技术关卡是证书:没有它,App 签不了名,真机装不上,包也打不出来。这篇把证书讲透——开发证书和发布证书到底怎么分工、TestFlight 为什么也要用发布证书、怎么用 Xcode 两分钟建两张证书并导出 .p12。
01一、先把「三件套」的概念掰开

账号审核通过后,登录 developer.apple.com,右上角头像菜单里就能看到「证书、标识符和描述文件」的入口。 很多人卡在证书这步,不是操作难,是概念没理清。iOS 打包签名有三样东西,缺一不可:
▪︎ 证书(Certificate / .p12):证明「你是谁」。相当于你的开发者身份证,绑定你的 Apple 账号和一台 Mac。
▪︎ App ID(Bundle ID):证明「App 是谁」。相当于 App 的唯一身份证,比如 com.fml.joylongjiang.dev。
▪︎ 描述文件(Provisioning Profile / .mobileprovision):把「你的证书 + App ID + 设备」三者打包成的一张「授权书」,告诉系统这个 App 允许装在哪些设备上。
一句话记住:证书认人,App ID 认应用,描述文件把两者和设备串起来。
02二、证书分两种,别搞混
日常开发用得上的证书就两张:
这里有个特别容易搞混的点,值得单独说一句:TestFlight 用的也是 Apple Distribution,不是开发证书。 原因在于 TestFlight 的构建版本必须先上传到 App Store Connect,走的是 App Store 分发通道,和正式上架是同一套签名。所以「只是测试、还没上架」不等于「可以用开发证书打包」——用开发证书签的包,要么签名校验不过,要么在上传后的处理阶段直接失败,卡在「正在处理」永远出不来。 顺带把四种分发方式的签名要求一次说清:
也就是说,除了本机调试,剩下的三种全要用 Apple Distribution。Ad Hoc 和 TestFlight 的区别不在证书,而在描述文件要不要绑设备 UDID——Ad Hoc 要绑,TestFlight 不绑,谁都能装。
在开发者后台的「Create a New Certificate」页面,你会看到一大排选项:iOS App Development、iOS Distribution、Mac Development、Developer ID Application……别慌,大部分是给 Mac、Apple TV 开发用的,iOS 开发只关心 Apple Development 和 Apple Distribution 这两个(新版后台已经把它们合并成全平台通用证书了)。

还有一个硬性限制要提前知道:开发证书、发布证书在同一个账号下数量都有限额(各最多 2~3 张)。所以别手一抖重复创建,也别随意删除——删了再建很麻烦。
03三、两条路线:网页 CSR vs Xcode 一键
给 Mac 申请证书,网上教程基本都教「网页端 + 钥匙串访问」的老路线:
▪︎ 打开 Mac 的「钥匙串访问」→ 证书助理 → 从证书颁发机构请求证书,生成一个 CertificateSigningRequest.certSigningRequest(CSR)文件;
▪︎ 登录 developer.apple.com/account → 证书、标识符和描述文件 → Certificates → 点「+」创建证书,上传这个 CSR 文件;
▪︎ 下载生成的 .cer 证书,双击导入钥匙串;
▪︎ 再从钥匙串里把「证书 + 私钥」一起导出成 .p12。
这条路能走通,但坑不少:钥匙串里证书必须和私钥成对出现,少了私钥导出按钮就是灰的;换一台 Mac 就得重新折腾一遍;中间任何一步顺序错了都得推倒重来。 老路线大概长这样——先在钥匙串里生成 CSR:

填上邮箱、常用名称(随便写个能认出来的),请求方式选「保存到磁盘」:

保存后得到 CSR 文件:

再到后台 Certificates 页面点「+」上传:


我的建议:网页端那套了解即可,日常直接用 Xcode 一键搞定,全程不用碰钥匙串,两分钟出两张证书,顺带把 .p12 导出来。下面是实操。
04四、Xcode 实操:从登录到导出 .p12
第一步:在 Xcode 里登录 Apple 账号。 打开 Xcode → Settings(快捷键 ⌘ ,)→ 顶部选 Accounts。第一次进来是空的,点 Add Apple Account...,输入你的 Apple 账号密码登录(就是上一篇花 688 块开通的那个号,记得开双重认证,会弹验证码)。

登录成功后,左侧出现你的 Apple ID,右侧显示该账号所属的 Team。 第二步:进 Manage Certificates。选中你的 Team → 点右侧 Manage Certificates... 按钮(我这张截图里箭头标的就是它)。

第三步:列表是空的?正常。 打开后你会看到 “Signing certificates for 你的名字”,列表中间一行大字:No Signing Certificates。别慌,这不是出错——列表空是因为你还没创建过证书。就用左下角那个「+」,两分钟搞定两张。

第四步:建两张证书。点左下角 + 号(如果直接点了没反应,点它右边的小箭头展开),弹出菜单里有五个选项——iOS 开发只需要前两个:
▪︎ Apple Development(日常开发用):菜单里选它,列表立刻出现一行,Status 列没有红字即成功。
▪︎ Apple Distribution(发布用):同一个 + 菜单里选它,同样出现一行。后面打 Ad Hoc 包、传 TestFlight、上架 App Store 全靠它,一张证书管三种分发。
▪︎ Mac Installer Distribution / Developer ID Application / Developer ID Installer:给 Mac 应用打包和分发用的,与 iOS 无关。

这里有个判断点:如果菜单里压根没有 Apple Distribution 这一项,说明你的账号还是免费的 Personal Team,没加入付费开发者计划,得先回去确认 membership——不过既然你已经能登进开发者后台,一般不会遇到。
第五步:导出 .p12(两张各导一次)。在列表里选中 Apple Development 那一行 → 右键(Control + 点按)→ Export Certificate...

弹出保存框,设一个密码(这个密码务必记牢,下面坑里会说)→ 存为 personal_dev.p12。再选中 Apple Distribution 那行,同样导出为 personal_dist.p12。 两个文件建议放到固定目录,比如 ~/iOS-Certs/personal/,连同后面要下载的 .mobileprovision 描述文件放一起——不管是用 HBuilderX 云打包还是换电脑,都要选它们。到这里,证书这块就齐活了。
05五、顺手把 App ID 也建了
既然进了开发者后台,建议把「三件套」的第二样一起办了。登录 developer.apple.com/account → 证书、标识符和描述文件 → Identifiers:

点顶部的「+」,或者页面里的 Register an App ID 按钮:

类型选 App IDs → Continue:

再选 App → Continue:

然后填 Description(描述,随便写个能认出来的名字)和 Bundle ID(选 Explicit,按反向域名格式填,比如 com.xm.market):

下面的 Capabilities 列表按需勾选(要用推送就勾 Push Notifications,暂时用不到的就都不勾,后面可以随时加),最后在确认页点 Register:

唯一要注意的:Bundle ID 必须和你项目里配置的完全一致(Xcode 项目是 Signing & Capabilities 里的 Bundle Identifier,uni-app / HBuilderX 是 manifest.json 里的 AppID),差一个字母,打包和上传必报错。
06六、这个环节的坑,我替你踩过了
▪︎ 「Unable to find a team with the given Team ID」。账号刚审核通过就去后台点证书页面,可能弹出这个提示。别慌,是权限还没同步生效,等审核通过了就行了——但如果等了一两天还是这样,就要联系苹果客服了。

▪︎ 以为 TestFlight 是测试,用开发证书打包就行。TestFlight 走 App Store Connect 分发,签名要求跟正式上架完全一样,必须 Apple Distribution。开发证书签的包装不进 TestFlight,包即使上传了也会卡在处理阶段。
▪︎ + 号点了没反应。要点它右边的小箭头才能展开菜单,Xcode 的经典交互反直觉。
▪︎ 菜单里没有 Apple Distribution。说明是免费 Personal Team,付费会员才有这张证书。
▪︎ p12 导出密码忘了。p12 是加密文件,密码丢了基本等于废纸,只能作废重签。设密码时顺手记进密码管理器。
▪︎ 证书数量超限。开发 / 发布证书各有限额,重复创建会报错。真到上限,得先去网页端 revoke 掉旧的再建,已发布 App 不受影响,但正在用的描述文件要重新生成。
▪︎ 换 Mac / 重装系统前没导出 p12。私钥只存在生成证书的那台 Mac 上,网页上下载不到。没导出 .p12 就换机器,旧证书等于丢了,只能 revoke 重建。所以第一次拿到证书就导出备份,养成习惯。
▪︎ 右键菜单里的 Delete Certificate 别乱点。删了本地证书,配着它签的包、描述文件都会跟着出问题。截图里这一项是灰色的,Xcode 不让你随手删,算是种保护。
▪︎ 拿开发证书打发布包。开发证书签的包只能调试,上架、Ad Hoc、TestFlight 都必须用 Apple Distribution,用错了打包工具会直接报签名错误。
07七、结语
证书这块总结成一句话:Xcode → Settings → Accounts → Manage Certificates → 左下角 + 建两张 → 右键 Export 导出 .p12,五步走完,比网页端钥匙串那套省心得多。
再强调一遍最容易被带偏的一点:除了连真机调试用 Apple Development,Ad Hoc、TestFlight、上架这三种分发全部用 Apple Distribution,区别只在描述文件。
到这里,「三件套」已经有了两样:证书(.p12)和 App ID(Bundle ID)。下一篇讲第三样也是最磨人的一样——描述文件(Provisioning Profile):怎么登记测试设备的 UDID、怎么生成 Ad Hoc 描述文件、为什么同事换了手机你重新改了后台还是装不上。那个坑比这篇还多。
想第一时间看到的话欢迎先关注哦。你在证书哪一步卡住了,也欢迎评论区留言。
往期精彩推荐:
谁还在付费语音转文字/字幕?OpenAI 这个开源神器,免费、离线、准确率吊打付费软件
IOS开发从苹果开发者账号注册到上架全流程实操分享(1):账号注册与避坑分享















































































