跳转到主要内容
要向 iOS 应用发送推送通知,需要与 Apple 推送通知服务 (APNs) 的身份验证连接。您可以使用**基于令牌的 (.p8 密钥)基于证书的 (.p12 文件)**方法进行身份验证——但只需要一种。
.p12 证书会在一年后过期。如果您不想管理此证书的续期,您可以创建 .p8 密钥,该密钥不会过期。
本指南将指导您设置**基于证书的 (.p12 文件)**方法。这不推荐,因为您必须每年续期,这需要在您的 Apple Developer 账户中生成新证书并将其重新上传到 OneSignal 控制台。

要求

开始之前,请确保您具备以下条件:

创建证书签名请求(CSR)

您首先需要在 macOS 上创建 .certSigningRequest 文件。
  1. 打开应用程序 > 实用工具 > 钥匙串访问
  2. 从菜单栏,点击钥匙串访问 > 证书助理 > 从证书颁发机构请求证书…
显示证书助理选项的钥匙串访问菜单
  1. 填写必需的字段:
    • 用户电子邮件地址: [email protected]
    • 通用名称:您的姓名或证书名称
    • CA 电子邮件地址:留空
    • 请求是:选择存储到磁盘
证书助理窗口,包含电子邮件、通用名称和存储到磁盘字段
  1. 点击继续,选择保存 .certSigningRequest 文件的位置,然后点击保存

为应用 ID 启用推送功能

如果您在 Xcode 中使用自动管理签名,请跳过此部分。
  1. 转到 Apple Developer 门户的标识符部分,从列表中找到并选择您的应用的 App ID
Apple Developer 标识符部分,显示 App ID 列表
  1. 通过勾选复选框启用推送通知功能。
不要点击**“配置”**——只需启用切换开关。
启用了推送通知复选框的 App ID 功能列表

创建推送证书

按照以下步骤生成 Apple 推送通知服务 (APNs) SSL 证书:
  1. 访问 Apple 证书页面
  2. 点击加号 (+) 按钮创建新证书。
  3. 服务下,选择:
    • Apple 推送通知服务 SSL(沙盒和生产)
    • 然后点击继续
    Apple 证书页面,显示 Apple 推送通知服务 SSL 沙盒和生产选项
  4. 从列表中选择您的应用 ID,然后点击继续
推送证书的应用 ID 选择下拉菜单
  1. 上传您之前生成的 .certSigningRequest 文件。
上传证书签名请求文件对话框
  1. 点击继续,然后点击下载将生成的 .cer 文件保存到您的电脑。
生成的 .cer 证书文件的下载按钮
您将使用此 .cer 文件在下一部分创建您的 .p12 证书。

创建私钥并导出 .p12 证书

  1. 双击下载的 .cer 文件将其导入钥匙串访问
  2. 在钥匙串访问中,导航到:
    • 钥匙串 > 登录
    • 类别 > 我的证书
  3. 找到名为Apple Push Services的证书。
  4. 右键点击证书并选择导出
钥匙串访问右键菜单,显示 Apple Push Services 证书的导出选项
  1. 选择保存文件的位置,并选择文件格式为 .p12
  2. 出现提示时,为 .p12 文件设置密码。上传到 OneSignal 时需要此密码。
显示 .p12 文件格式选择和密码提示的保存对话框

将 .p12 上传到 OneSignal

  1. 在您的 OneSignal 控制台中,转到您的应用 > 设置 > 推送和应用内 > Apple iOS
  2. 上传 .p12 文件(如果您设置了密码,请输入密码)。点击保存
您已成功在 OneSignal 中设置了使用 .p12 证书的 APNs 身份验证您的 iOS 应用现在已准备好发送和接收推送通知!🎉

.p12 故障排除

证书格式无效错误

原因: 上传的文件不是 .p12 格式。 解决方法: 确保从钥匙串访问导出证书.p12(不是 .cer.pem)。

上传到 OneSignal 时出现”密码不正确”

原因: 密码输入错误或未设置。 解决方法:
  • 尝试重新导出并设置新密码
  • 确保粘贴时没有添加额外的空格。
  • 如果使用 Provisionator,密码显示在 UI 中。

导出文件中缺少私钥

原因: 证书已导入但未与私钥配对。 解决方法:
  • 确保在同一台机器上从钥匙串访问生成 CSR
  • 下载 .cer 文件后,双击安装并检查密钥是否出现在我的证书下。

上传后推送通知无法工作

原因: 应用 ID 不正确,或配置文件缺少功能。 解决方法:
  • 确认 .p12 与应用中使用的应用 ID 匹配。
  • 在 Apple Developer 门户中,确保应用 ID 已启用推送通知
  • 确保配置文件包含推送

证书过期

原因: .p12 证书不再有效。 解决方法:
  • 转到 Apple Developer > 证书并检查到期时间。
  • 撤销旧证书并创建新证书。

后续步骤


常见问题

我的 .p12 证书何时过期?如何续期?

.p12 证书在创建后一年到期。要续期,请生成新的 CSR,在 Apple Developer 中创建新的推送证书,将其导出为 .p12,然后重新上传到您的 OneSignal 控制台。设置日历提醒以避免服务中断。或者,切换到 .p8 密钥,该密钥不会过期。

我应该使用 .p8 还是 .p12?

OneSignal 建议大多数应用使用 .p8 密钥。.p8 密钥不会过期,适用于您 Apple Developer 账户下的所有应用,且管理更简单。.p12 证书是特定于应用的,必须每年续期。请参阅 .p8 密钥指南了解设置说明。

我需要配置文件吗?如何创建?

是的,Apple 要求为开发、测试 (Ad Hoc) 和分发到 App Store 使用不同类型的配置文件。 在 Xcode 中,您应该能够选择自动管理签名来自动创建一个。
启用了自动管理签名的 Xcode 签名与功能选项卡
否则,请参阅 Apple 关于配置文件的文档了解详细信息。