.p12 证书会在一年后过期。如果您不想管理此证书的续期,您可以创建 .p8 密钥,该密钥不会过期。
要求
开始之前,请确保您具备以下条件:- 一个 iOS 移动应用。
- 具有管理员访问权限的付费 Apple Developer 账户。
- 一个 OneSignal 账户。
- 安装了 Xcode 14+ 的 Mac。
- 在 Xcode 中为您的应用目标设置的 Bundle ID。
- 启用了推送通知功能的 Xcode 项目。
生成推送证书
您首先需要在 macOS 上创建证书签名请求.certSigningRequest
文件 (CSR)。
- 打开钥匙串访问:应用程序 > 实用工具 > 钥匙串访问
- 启动证书助理
- 从菜单栏,点击:钥匙串访问 > 证书助理 > 从证书颁发机构请求证书…

Mac 钥匙串访问
- 输入您的信息
- 用户电子邮件地址:
[email protected]
- 通用名称:您的姓名或证书名称
- CA 电子邮件地址:留空
- 请求是:选择存储到磁盘

证书助理窗口
- 点击继续
- 选择保存
.certSigningRequest
文件的位置 - 点击保存完成
.certSigningRequest
文件!
为应用 ID 启用推送功能
如果您在 Xcode 中使用自动管理签名,请跳过此步骤。- 转到 Apple Developer 门户的标识符部分,从列表中找到并选择您的应用的 App ID。

- 通过勾选复选框启用推送通知功能。⚠️ 不要点击**“配置”**——只需启用切换开关。

创建推送证书
按照以下步骤生成 Apple 推送通知服务 (APNs) SSL 证书:- 访问 Apple 证书页面。
- 点击加号 (+) 按钮创建新证书。
-
在服务下,选择:
- Apple 推送通知服务 SSL(沙盒和生产)
- 然后点击继续
- 从列表中选择您的应用 ID,然后点击继续。

- 上传您之前生成的
.certSigningRequest
文件。

- 点击继续,然后点击下载将生成的
.cer
文件保存到您的电脑。

.cer
文件来配置推送通知服务。
创建私钥并导出 .p12 证书
-
双击下载的
.cer
文件将其导入钥匙串访问。 -
在钥匙串访问中,导航到:
- 钥匙串 > 登录
- 类别 > 我的证书
- 找到名为Apple Push Services的证书。
- 右键点击证书并选择导出。

导出将在您所需的文件位置生成 .p12 文件
- 选择保存文件的位置,并选择文件格式为
.p12
。出现提示时,您可以为.p12
文件设置密码(上传到 OneSignal 等服务时需要此密码)。

将 .p12 上传到 OneSignal
- 在您的 OneSignal 控制台中,转到您的应用 > 设置 > 推送和应用内 > Apple iOS。
- 上传
.p12
文件(如果您设置了密码,请输入密码)。点击保存。
您已成功在 OneSignal 中设置了使用 .p12 证书的 APNs 身份验证。您的 iOS 应用现在已准备好发送和接收推送通知!🎉
.p12 故障排除
证书格式无效错误
原因
上传的文件不是
.p12
格式。解决方案
确保从钥匙串访问导出证书为
.p12
(不是 .cer
或 .pem
)。上传到 OneSignal 时出现”密码不正确”
原因
密码输入错误或未设置。
解决方案
- 尝试重新导出并设置新密码。
- 确保粘贴时没有添加额外的空格。
- 如果使用 Provisionator,密码显示在 UI 中。
导出文件中缺少私钥
原因
证书已导入但未与私钥配对。
解决方案
- 确保在同一台机器上从钥匙串访问生成 CSR。
- 下载
.cer
文件后,双击安装并检查密钥是否出现在我的证书下。
上传后推送通知无法工作
原因
应用 ID 不正确,或配置文件缺少功能。
解决方案
- 确认
.p12
与应用中使用的应用 ID 匹配。 - 在 Apple Developer 门户中,确保应用 ID 已启用推送通知。
- 确保配置文件包含推送。
证书过期
原因
.p12
证书不再有效。解决方案
- 转到 Apple Developer > 证书并检查到期时间。
- 撤销旧证书并创建新证书。
常见问题
我需要配置文件吗?如何创建?
是的,Apple 要求为开发、测试 (Ad Hoc) 和分发到 App Store 使用不同类型的配置文件。 在 Xcode 中,您应该能够选择自动管理签名来自动创建一个。