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

要求

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

生成推送证书

您首先需要在 macOS 上创建证书签名请求 .certSigningRequest 文件 (CSR)。
  1. 打开钥匙串访问:应用程序 > 实用工具 > 钥匙串访问
  2. 启动证书助理
  • 从菜单栏,点击:钥匙串访问 > 证书助理 > 从证书颁发机构请求证书…

Mac 钥匙串访问

  1. 输入您的信息
填写必需的字段:
  • 用户电子邮件地址: [email protected]
  • 通用名称:您的姓名或证书名称
  • CA 电子邮件地址:留空
  • 请求是:选择存储到磁盘

证书助理窗口

  1. 点击继续
  • 选择保存 .certSigningRequest 文件的位置
  • 点击保存完成
您现在有了准备使用的 .certSigningRequest 文件!

为应用 ID 启用推送功能

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

创建推送证书

按照以下步骤生成 Apple 推送通知服务 (APNs) SSL 证书:
  1. 访问 Apple 证书页面
  2. 点击加号 (+) 按钮创建新证书。
  3. 服务下,选择:
    • Apple 推送通知服务 SSL(沙盒和生产)
    • 然后点击继续
  4. 从列表中选择您的应用 ID,然后点击继续
  1. 上传您之前生成的 .certSigningRequest 文件。
  1. 点击继续,然后点击下载将生成的 .cer 文件保存到您的电脑。
您将使用此 .cer 文件来配置推送通知服务。

创建私钥并导出 .p12 证书

  1. 双击下载的 .cer 文件将其导入钥匙串访问
  2. 在钥匙串访问中,导航到:
    • 钥匙串 > 登录
    • 类别 > 我的证书
  3. 找到名为Apple Push Services的证书。
  4. 右键点击证书并选择导出

导出将在您所需的文件位置生成 .p12 文件

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

将 .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 > 证书并检查到期时间。
  • 撤销旧证书并创建新证书。

常见问题

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

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