Apple Developer证书
Apple Developer证书

Apple Developer证书

什么是 Apple Developer 证书?

Apple Developer 证书是 Apple 用于身份验证和软件签名的加密证书,用于确保:

1、注册的 Apple 开发者;

2、App 是受信任的;

3、代码和 App 没有被篡改。

常用证书及用途

1、Apple Development:开发证书

用于真机调试、测试,适用于iOS / macOS 等。

使用场景:Xcode 构建和运行 App 到设备上。

2、Apple Distribution:分发证书

用于发布到 App Store,适用于iOS / macOS 等。

使用场景:签名正式版 App 进行上架提交。

3、Developer ID Application:分发证书

用于官网/企业外发,适用于macOS。

使用场景:非 App Store 发布,系统 Gatekeeper 信任。

4、Developer ID Installer:分发证书

用于安装器(.pkg)签名,适用于macOS。

使用场景:官网分发安装包时使用。

5、Apple Push Services:服务证书

用于推送通知签名,适用于iOS / macOS / watchOS 等。

使用场景:用于 APNs(推送通知服务)

6、Apple Pay Payment Processing:服务证书

用于支付授权,适用于iOS。

使用场景:Apple Pay 相关服务。

有效期与续期说明

1、证书(大多数):有效期为1 年,登录 Apple Developer 网站重新生成新证书(旧的可删除)。

2、Provisioning Profile(配置文件):有效期最多 1 年,需重新下载绑定新证书的 Profile.

3、App Store 提交的 App,不受证书有效期的影响,签名时有效即可,后续证书失效不会影响用户使用。

证书与其他概念的关系

1、证书(Certificate):用于加密签名,表示你是谁。

2、App ID:标识 App 的唯一 ID,例如 com.yourcompany.MyApp。

3、Team ID:开发者账号 ID,与证书绑定,唯一表示团队身份。

4、Provisioning Profile:说明“可以签什么 App 到哪些设备”,包含证书指纹等。

5、Entitlements::特权权限,如推送、App Sandbox、iCloud 等。

证书创建流程

1、网页创建流程

1、登陆Apple Developer,选择Certificates, Identifiers & Profiles

2、选择“Certificates”,点击+号创建证书。

3、选择对应的证书类型(如 Apple Distribution、Developer ID Application 等)。

在文章底部的扩展知识中,附带每个证书的说明。

4、上传证书签名请求。

这里需要手动生成 Mac 上的证书签名请求 (CSR) 文件,详细参考《Apple证书签名请求CSR文件》,创建CSR文件。

将CSR文件上传后,点击Continue继续按钮,进入下一步。

5、显示 “下载证书” 界面,显示证书名称、证书类型、截止日期和创建者等信息。

点击右上角的下载按钮,将证书下载到本地。

6、找到证书的下载位置,双击导入到钥匙串中。

注意:双击证书,打开钥匙串后,未必显示证书信息,但证书可能已经导入成功。

可以在钥匙串中找到“登陆”-“证书”,查找对应的证书。

7、在钥匙串中查找证书

如果找不到证书,可以在Certificates, Identifiers & Profiles查看证书截止日期,通过截止日期或Type查找。

这里的Type对应的就是证书名称。

2、Xcode创建证书

除网页创建证书外,也可以在Xcode中创建证书。

打开Xcode,点击Xcode – Settings…。

在设置页面中,找到Accounts – Manage Certificates。

点击左下角的+号,添加对应的证书。

这种方式更方便,本地创建和安装 Apple Development、Apple Distribution,不用打开网页,不需要手动生成 CSR,Xcode 会自动完成 CSR + 私钥 + 下载 + 导入。

所以是单人开发者,推荐用 Xcode 生成主证书(Dev / Distribution / Developer ID),只在需要服务类功能(如 APNs)时再上网页。

相关文章

1、Apple Developer Account:https://developer.apple.com/account

2、Certificates, Identifiers & Profiles:https://developer.apple.com/account/resources/certificates/list

3、Apple证书签名请求CSR文件:https://fangjunyu.com/2025/07/06/apple%e8%af%81%e4%b9%a6%e7%ad%be%e5%90%8d%e8%af%b7%e6%b1%82csr%e6%96%87%e4%bb%b6/

扩展知识

1、Apple Developer 网站证书类型

软件类证书

Apple Developer 网站中 “Create a New Certificate” 时,可以看到可选的所有主流证书类型。

下面将根据分类说明各证书的作用:

1、Apple Development

新一代统一的开发证书,适用于所有平台(iOS、macOS、tvOS、watchOS、visionOS),适用全平台,支持所有平台调试开发。

2、Apple Distribution

新一代统一发布证书,支持 iOS / macOS 等平台提交 App Store、Ad Hoc 测试等,使用全平台,推荐使用。

3、iOS App Development

老版本,仅限 iOS 平台开发用, ❌不建议用(已被Apple Development替代)。

4、iOS Distribution (App Store Connect and Ad Hoc)

老版本,仅限 iOS 平台App Store / Ad Hoc开发,适用于iOS / iPadOS / watch OS,❌不建议用。

5、Mac Development

老版本,仅限 macOS 平台开发用, ❌不建议用(已被Apple Development替代)。

6、Mac App Distribution

老版本,仅限 macOS 平台提交App Store使用,❌不建议用。

7、Mac Installer Distribution             

仅用于签名 .pkg 安装包提交 App Store使用,适用于macOS平台,仅用于上传 .pkg 时才用。

8、Developer ID Installer

用于签名 .pkg 安装器,官网分发时用,适用于macOS平台,用于Installer 安装包。

9、Developer ID Application

用于签名 macOS App,便于官网分发,被 Gatekeeper 信任,用于不通过 App Store 发布时。

软件类证书使用场景

如果开发和分发macOS App:

1、开发 / 测试:Apple Development。

2、提交 App Store:Apple Distribution。

3、官网分发 App:Developer ID Application。

4、官网分发 .pkg 安装器:Developer ID Installer(可选)。

如果没有创建证书,推荐创建Apple Development(开发和测试用)、Apple Distribution(分发用)和Developer ID Application(官网分发用)这三个证书。

服务类证书

Apple Developer 网站中 “Create a New Certificate” 页面下的「Services(服务类证书)」部分,专用于特定功能,比如推送通知、Apple Pay、Wallet、Swift 包等。这些证书不是用来开发或分发 App 的主签名证书,而是用于连接 Apple 的服务和系统 API 的。

1、推送通知类证书(Apple Push Notification)

1)Apple Push Notification service SSL (Sandbox):为测试环境生成推送连接证书,用于开发推送,属于常用证书。

2)Apple Push Notification service SSL (Sandbox & Production):支持测试+生产环境的推送,推荐用HTTP/2 API,属于常用证书。

如果 App 要支持远程推送(包括普通通知、VoIP、Complication),就必须为每个 App 单独创建一个这个证书(按 App ID 分配)。

2、Wallet Pass 和 Order 支付凭证

1)Pass Type ID Certificate:签名 Wallet 中的票券(如门票、优惠券),用于钱包 Pass 应用,针对钱包等特殊场景,不常用。

2)Order Type ID Certificate:用于 Wallet 中订单展示(如 Apple Pay 后续订单信息),用于电商类App等特殊场景,不常用。

3、Website Push 证书

Website Push ID Certificate:给 Safari 网站发送推送通知用(在 macOS 上),例如 macOS Safari 网站通知。

4、Swift Package 签名相关(新特性)

1)Swift Package Collection Certificate:签名 Swift 包集合(创建的一组包),用于Swift Package Index / 私有包平台。

2)Swift Package Certificate:签名单个 Swift 包(例如写的一个组件),用于发布公共 Swift 包时使用。

如果只是内部用 Swift Package 或不做开源发布,这些可以忽略。

如果写 Swift 库给别人用,可考虑申请。

5、WatchKit / VoIP 服务类证书

1)WatchKit Services Certificate:为 watchOS App 更新表盘组件 Complication 用的通知服务,针对Apple Watch应用场景。

2)VoIP Services Certificate:支持 VoIP App(如 Zoom、微信)后台推送,适用于呼叫类 App(如语音聊天)。

如果 App 支持后台呼叫唤醒或 Apple Watch 通知,这些是必须的。否则不需要。

6、Apple Pay 服务类证书

1)Apple Pay Payment Processing Certificate:解密 Apple Pay 的支付 Token 数据,使用场景为商户侧使用(如 Stripe、京东)。

2)Apple Pay Merchant Identity Certificate:用于与 Apple Pay 服务器建立 TLS 连接,使用场景为商户 App 使用(必须 TLS 验证)。

一般应用于Apple Pay 商户或电商平台(如集成了 Apple Pay 支付流程)。

中间证书

Apple Developer 网站中 “Create a New Certificate” 页面的最底部是中间证书。

它们是 Apple 官方签发证书的信任链中间层,Xcode 会自动安装这些证书。只需要了解:

如果 Keychain 中缺失它们,签名验证可能会失败。

若遇到构建问题时提示“missing intermediate certificate”,可以手动安装这些中间证书(页面中有下载链接)。

Worldwide Developer Relations Certificate Authority (Expiring 02/07/2023)

Worldwide Developer Relations Certificate Authority (Expiring 02/20/2030)

Worldwide Developer Relations – G4 (Expiring 12/10/2030)

Developer ID – G2 (Expiring 09/17/2031)

2、Xcode证书比网页证书少

在使用Xcode 中创建证书会发现,证书的选项更少。这是 Apple 的刻意设计:Xcode 只提供了最常用、最通用、最适合「本地开发 + 分发」的几种证书,而不会暴露所有服务类证书的生成选项。

1、Apple Development:开发签名(支持 iOS/macOS 全平台),对应网页的 Apple Development,用于调试、真机部署。

2、Apple Distribution:分发签名(提交 App Store、Ad Hoc 测试),对应网页的 Apple Distribution,用于提交 App Store 或内部测试。

3、Mac Installer Distribution:签名 .pkg 安装包,对应网页的 Mac Installer Distribution,专用于打包安装器的签名。

4、Developer ID Application:官网分发 macOS App 的签名证书,对应网页的 Developer ID Application,用于让 Gatekeeper 信任。

5、Developer ID Installer:官网分发 .pkg 安装器签名证书,对应网页的 Developer ID Installer。

如果需要创建服务类证书,则必须通过 Apple Developer 网站 手动创建。

3、Xcode 创建证书时为什么没有 CSR 文件,它的替代机制是什么、是否还需要手动保留 CSR 文件。

通过Xcode创建证书时,Xcode内部自动生成并提交CSR文件,并且:

1、自动创建密钥对(私钥 + 公钥)。

2、自动生成临时 CSR 并提交到 Apple。

3、自动下载证书 .cer 文件。

4、自动导入到系统钥匙串并配对好私钥。

所以在 Xcode 中看不到 CSR 文件的生成和使用过程,但背后它已经帮忙做完了。

4、那么,CSR文件还有没有用?

Xcode 创建证书时,不需要手动保存 CSR 文件:

1、Apple 只需要在本机生成密钥对并提交 CSR;

2、并不需要保留 CSR,Apple 也不会验证历史 CSR。

只有在「手动创建证书」时,才需要保留 CSR 文件一段时间,原因是:

1、配对私钥存在本地钥匙串;

2、如果导入 .cer 文件失败,需要重新用原 CSR 再生成;

3、如果要在另一台机器上签名,则 CSR 配对的私钥也要导出(不能只靠 CSR)。

5、是否可以删除CSR文件?

1、Xcode创建证书后,会自动删除CSR文件,CSR是临时的,系统自动处理。

2、手动创建证书,并且证书成功导入钥匙串后,可选删除,因为私钥已保存,可以重新生成CSR。

3、如果手动创建证书,但还没有导入 .cer 文件,不建议删除,因为CSR 和私钥必须配对成功才能用。

注意:CSR 是一次性用途文件,Apple 创建证书后,这个 CSR 就不会再用到了,也不能重复上传。

6、什么时候需要保留 CSR 和私钥?

如果有这些需求,建议保留 CSR 和私钥对应的 .p12 文件:

1、CI/CD 构建机器(Jenkins, GitHub Actions):必须保留 .p12(含私钥)。

2、多人协作共享证书(私钥+证书):建议统一保存并加密共享。

3、多台 Mac 共用一个开发证书:必须导出 .p12(CSR 不行)。

7、.p12文件是什么?

.p12 文件(又叫 .pfx)是一个标准格式,用于打包证书 + 私钥。

格式名为PKCS#12(Public-Key Cryptography Standards #12),文件后缀为 .p12 或 .pfx。

内容包含私钥+证书(.cer)+可选证书链。

通常有密码保护,防止私钥泄漏,可导入其他电脑 / CI工具 / Windows系统,用于签名。

8、导出 .p12文件(从钥匙串中访问)

前提:已经安装了证书并配对好了私钥(可在钥匙串中看到「私钥 + 证书」一组)。

打开“钥匙串访问”,选择要导出的证书条目(通常是 Apple Distribution 或 Developer ID Application)。

点击左侧开展箭头,可以看到“私钥”。

右击这个证书条目,选择“导出”,选择 .p12类型。

系统会要求设置一个导出密码。

这就导出了一个 .p12 文件,含有完整私钥 + 证书,可以移动到其他电脑使用。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注