iOS 发布证书全攻略:App 上架 App Store 前,你必须搞定这件事
开发证书配好了,以为万事俱备,结果发现——
上架 App Store,是另一套完全不同的证书体系。
做xx语记(SpeechNote)的时候,我就在这里又卡了一次。开发环境跑得好好的,一到发布流程,Xcode Archive 报错、Provisioning Profile 对不上、上传到 App Store Connect 又提示证书无效……
这篇文章,把发布证书从头到尾梳理一遍。开发证书用于真机调试,发布证书用于正式打包上架,两套逻辑,缺一不可。
发布证书和开发证书有什么区别
先把概念理清,否则后面容易混。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
简单说:开发证书让 App 跑起来,发布证书让 App 上架。
第一步:创建发布证书
生成 CSR 文件
和开发证书一样,发布证书也需要先生成一个 CSR 文件。如果你上次已经生成过,可以复用同一个 CSR 文件,不需要重新生成。
如果需要重新生成,用命令行最稳(避免国内网络导致证书助理报错):
openssl req -new -newkey rsa:2048 -nodes \
-keyout ~/Desktop/SpeechNote_dist.key \
-out ~/Desktop/SpeechNote_dist.csr \
-subj "/CN=SpeechNote Distribution/O=YourName/C=CN"
在开发者后台创建证书
登录 developer.apple.com,进入 Certificates, Identifiers & Profiles:
-
1. 点击左侧 Certificates → 右上角 + -
2. 类型选择 Apple Distribution(不是 Apple Development) -
3. 上传 .csr文件 -
4. 下载 .cer文件,双击安装到钥匙串
常见问题一:Apple Distribution 和 iOS Distribution 有什么区别
Apple Distribution 是新版统一证书,一张证书可以同时用于 iOS、macOS、tvOS 等所有苹果平台的发布。iOS Distribution 是旧版平台专用证书,功能上没有差异,只是作用范围更窄。新建的话直接选 Apple Distribution,向下兼容,不会有问题。
第二步:创建 App Store Provisioning Profile
开发阶段用的是 iOS App Development 类型的 Profile,发布阶段要用 App Store 类型的 Profile。
-
1. 点击左侧 Profiles → + -
2. 类型选择 App Store Connect(或 App Store) -
3. 选择 App ID: ink.jinghai.speechnote -
4. 选择刚才创建的 Apple Distribution 证书 -
5. 填写 Profile 名称,如 SpeechNote AppStore -
6. 下载 .mobileprovision文件,双击安装
常见问题二:App Store Profile 为什么不需要选设备
因为 App Store 发布的包不是直接安装到指定设备的,而是上传到 Apple 服务器,再由用户通过 App Store 下载安装。Apple 的服务器会负责后续的签名和分发,所以这个环节不需要绑定具体设备。
第三步:在 App Store Connect 创建 App 记录
发布之前,还需要在 App Store Connect 后台先创建好 App 的基本信息,Xcode 上传时才能对应上。
登录 appstoreconnect.apple.com:
-
1. 点击左上角 +→ 新建 App -
2. 填写以下信息: -
• 平台:iOS -
• 名称:xx(这是用户在 App Store 看到的名称) -
• 主要语言:简体中文 -
• Bundle ID:选择 ink.jinghai.speechnote(会自动从开发者后台同步) -
• SKU:自定义唯一标识符,如 speechnote,用户不可见
常见问题三:App 名称和 Bundle ID 填错了能改吗
App 名称在上架之前可以改,但上架之后修改需要提交新版本审核。
Bundle ID 一旦提交就无法修改,选择
ink.jinghai.speechnote之后就永久绑定了,这一点要谨慎。
第四步:Xcode 配置发布签名
打开 Xcode,选中你的项目 Target → Signing & Capabilities。
如果使用自动管理签名(推荐):
勾选 Automatically manage signing,选择你的 Team,其他什么都不用动。打包时 Xcode 会自动切换到发布证书和 App Store Profile。
如果手动管理签名:
在顶部的 scheme 选择器旁边,有 Debug 和 Release 两种模式,切换到 Release,在 Provisioning Profile 下拉菜单里选择 SpeechNote AppStore。
第五步:Archive 打包并上传
这是整个发布流程的核心操作。
-
1. 在 Xcode 顶部设备选择器中,将目标设备切换为 Any iOS Device(arm64),不能选模拟器 -
2. 菜单栏 → Product → Archive -
3. 等待打包完成,弹出 Organizer 窗口 -
4. 选中刚打好的 Archive → 点击 Distribute App -
5. 选择 App Store Connect → Upload -
6. 按照向导一步步点 Next,Xcode 会自动完成签名验证和上传
上传成功后,大约等待 15 分钟到 1 小时,构建版本会出现在 App Store Connect 后台。
常见问题四:Archive 菜单是灰色的,点不了
原因只有一个:目标设备选的是模拟器。把顶部设备切换为真机或 Any iOS Device 就解锁了。
常见问题五:上传后 App Store Connect 一直收不到构建版本
上传之后 Apple 会对包做自动扫描,通常需要 15 分钟到 1 小时。如果超过 2 小时还没出现,检查你注册 Apple ID 的邮箱,Apple 会发邮件说明是否有问题(比如隐私权限描述缺失、Info.plist 配置异常等)。
第六步:提交审核
构建版本出现在 App Store Connect 后台之后,还需要填写完整的上架信息才能提交审核:
-
• App 截图:按 Apple 要求提供各尺寸截图(6.5 寸和 5.5 寸是必须的) -
• App 描述:中英文均可,写清楚核心功能 -
• 关键词:最多 100 个字符,影响搜索排名 -
• 隐私政策 URL:现在所有 App 都必须提供,没有会被拒审 -
• 年龄分级:根据实际内容如实填写
全部填完,在「构建版本」里选择刚才上传的包,点击提交以供审核。
首次审核通常需要 1-3 个工作日,审核结果会发邮件通知。
常见问题六:SpeechNote 用了语音识别功能,审核需要注意什么
涉及麦克风和语音识别权限,Info.plist 里必须填写权限使用说明:
<key>NSMicrophoneUsageDescription</key>
<string>SpeechNote需要访问麦克风以录制语音,将语音转换为文字笔记</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>SpeechNote需要语音识别权限,将您的语音实时转换为文字</string>描述要写得具体,说清楚”为什么需要”而不是”需要麦克风”,审核员会验证实际使用场景是否与描述一致。
整个发布流程一张图
创建 Apple Distribution 证书
↓
创建 App Store Provisioning Profile
↓
在 App Store Connect 创建 App 记录
↓
Xcode 配置发布签名
↓
Product → Archive → Distribute → Upload
↓
App Store Connect 填写上架信息
↓
提交审核 → 等待 1-3 个工作日
↓
上架成功
发布证书要不要导出 .p12 保存
要。
发布证书对应的 .p12 比开发证书更重要——一旦 Mac 损坏或钥匙串丢失,没有 .p12 你将无法打包新版本,只能撤销旧证书重新申请,过程非常麻烦。
导出方式和开发证书一样:钥匙串访问 → 找到 Apple Distribution: 你的名字 → 同时选中证书和私钥 → 右键导出 .p12 → 务必设置密码 → 备份到云盘或移动硬盘。
发布证书的 .p12 建议至少存两个地方。
写在最后
开发证书是让 App 跑起来,发布证书是让 App 走出去。
两套流程第一次做的时候都觉得复杂,但做过一遍之后就会发现,它的本质逻辑是一样的:证明你是谁、你的 App 是什么、你有没有资格发布它。
2026.02.28 19:56
沪 · 赵巷
夜雨聆风
