夜雨聆风学习资料网

ARTICLE · 1284167

IOS开发从苹果开发者账号注册到上架全流程实操分享(2):证书申请与Xcode导出

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二、证书分两种,别搞混

日常开发用得上的证书就两张:

证书
用途
什么时候用
Apple Development
开发证书,真机调试
连接真机跑代码、打调试包
Apple Distribution
发布证书,负责「分发」
Ad Hoc 内部分发、TestFlight 测试、正式上架 App Store

这里有个特别容易搞混的点,值得单独说一句:TestFlight 用的也是 Apple Distribution,不是开发证书。 原因在于 TestFlight 的构建版本必须先上传到 App Store Connect,走的是 App Store 分发通道,和正式上架是同一套签名。所以「只是测试、还没上架」不等于「可以用开发证书打包」——用开发证书签的包,要么签名校验不过,要么在上传后的处理阶段直接失败,卡在「正在处理」永远出不来。 顺带把四种分发方式的签名要求一次说清:

分发方式
证书
描述文件类型
真机调试
Apple Development
iOS App Development
Ad Hoc(适合同事装)
Apple Distribution
Ad Hoc(要绑 UDID)
TestFlight 测试
Apple Distribution
App Store Connect
App Store 上架
Apple Distribution
App Store Connect

也就是说,除了本机调试,剩下的三种全要用 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):账号注册与避坑分享

Git 协作全流程:从拉代码到合并上线,一篇讲透

你的AI同事已经上岗:CodeBuddy和WorkBuddy到底怎么分工合作?

从零开始认识大语言模型(LLM)

这10个AI工具,让同事以为你是全栈大神

带娃游玩北京环球影城 逐项拆解 + 避坑指南

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料