要求
在开始之前,请确保您具备以下条件:- 一个 iOS 或 macOS 应用。
- 具有管理员访问权限的付费 Apple Developer 账户。
- 一个 OneSignal 账户。
- 安装了 Xcode 14+ 的 Mac。
- 启用了推送通知功能的 Xcode 项目。
设置 APNs 身份验证
在 Apple Developer 账户中生成您的 .p8 密钥
- 登录您的 Apple Developer 账户。
- 转到证书、标识符和配置文件 > 密钥。
- 点击蓝色加号 (+) 图标。
- 如果您看不到它,请联系您的管理员获取访问权限。

- 选择 Apple Push Notifications service (APNs)。
- 配置密钥时,确保选中沙盒和生产:

- 输入密钥名称并点击继续,然后点击注册。

- 下载您的 .p8 密钥并安全存储。您将无法再次下载它。
将 .p8 密钥上传到 OneSignal
- 在您的 OneSignal 控制台中导航到设置 > 推送和应用内 > Apple iOS (APNs) 设置。

- 选择 **.p8 认证密钥(推荐)**作为身份验证方法。

.p8 文件– 您从 Apple Developer 帐户下载的私钥文件。密钥 ID– 一个 10 位字母数字字符串(例如ABC123DEFG),位于您 Apple Developer 帐户密钥部分中密钥名称旁边。确保它与下载的 .p8 文件匹配。团队 ID– 一个 10 位字母数字字符串(例如9A1B2C3D4E),显示在您的 Apple Developer 帐户右上角团队名称旁边。这与密钥 ID 不同。应用包 ID– 一个反向域名字符串(例如com.example.app),可在以下位置找到:- 您 Apple Developer 帐户的标识符部分,或
- Xcode > 主应用目标 > 签名和功能


您已成功在 OneSignal 中设置了使用 .p8 密钥的 APNs 身份验证。您的 iOS 应用现在已准备好发送和接收推送通知!🎉
.p8 故障排除
确认您拥有正确的密钥 ID
- 转到您的 Apple Developer > 密钥部分。
- 密钥 ID 是密钥名称旁边显示的 10 位字符串(例如
ABC123DEFG)。 - 将您在 OneSignal 中输入的密钥 ID 与下载的
.p8密钥列出的 ID 匹配。 - 不要与团队 ID 混淆——两者都是 10 位字符串,但位于不同的位置。
验证团队 ID
- 您的团队 ID 是在您 Apple Developer 帐户右上角团队名称旁边显示的 10 位字符串。
- 确保它被精确复制并与生成密钥的帐户匹配。
- 不要与密钥 ID 混淆——团队 ID 标识您的开发者帐户,而不是特定密钥。
确保密钥具有 APNs 功能
- 在 Apple Developer 中查看您的密钥时,应列出 Apple Push Notifications service (APNs) 功能。
- 如果没有,请撤销密钥并创建一个新的。
当所有其他方法都失败时
- 撤销当前的
.p8密钥并从头创建一个新的。 - 仔细检查您使用的是来自创建密钥的同一帐户的有效包 ID。
- 联系 support@onesignal.com,提供密钥 ID、团队 ID、包 ID 以及您的 Apple Developer 密钥配置的编辑截图。
后续步骤
iOS SDK 设置
安装 OneSignal SDK,在您的应用中初始化它,并发送测试通知。
移动 SDK 设置
选择您的平台,按照适用于 Android、iOS 或跨平台框架的完整 SDK 集成指南操作。
常见问题
.p8 和 .p12 有什么区别?
.p8 密钥是一种基于令牌的身份验证密钥,不会过期,适用于您 Apple Developer 帐户下的所有应用。.p12 证书是特定于应用的,一年后过期,需要每年续期。OneSignal 推荐使用 .p8,因为它更简单且维护成本更低。有关替代方法,请参阅 .p12 证书指南。我的 .p8 密钥会过期吗?
不会。与 .p12 证书不同,.p8 密钥不会过期。一旦创建,.p8 密钥将一直有效,直到您在 Apple Developer 帐户中撤销它。我可以对多个应用使用一个 .p8 密钥吗?
可以。单个 .p8 密钥适用于同一 Apple Developer 帐户下的所有应用。您可以将同一 .p8 文件上传到多个 OneSignal 应用——每个应用只需要自己唯一的包 ID。我需要配置文件吗?如何创建?
是的,Apple 要求为开发、测试 (Ad Hoc) 和分发到 App Store 使用不同类型的配置文件。 在 Xcode 中,选择自动管理签名来自动创建一个。