iOS 推送通知
先决条件
本教程假设你熟悉我们推送通知快速入门中介绍的概念。配置 Apple 通知通道
- 确保你拥有有效的 iOS 开发 (APNS_SANDBOX) 或生产 (APNS) 证书。如果没有,请从 Apple Developer Portal 的 Certificates, Identities and Profiles 下创建一个。
- 导出你选择的证书(开发或生产):
- 首先从 Apple Developer Portal 的 Certificates, Identities and Profiles 下下载你的证书副本。这将创建一个 .cer 文件。
- 打开并将证书安装到你的 Keychain Access 中。
- 在 Certificates 子类别下查看已安装的证书。
- 将你的 Keychain Access Certificate 导出为 .p12 格式。
-
使用以下控制台命令将 .p12 文件转换为 .pem 文件:
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
- 有了 .pem 文件后,你可以通过 PlayFab Game Manager 在你的 Title 设置 > Push Notifications 下直接上传。
-
或者,使用下面的生成器为
SetupPushNotification制作 JSON 请求。
SetupPushNotification 的 JSON 请求生成器
请求生成器使用以下信息来创建 JSON 请求:- Platform - 使用以下值之一:APNS (iOS)、APNS_SANDBOX (iOS)、GCM (Android)
- Application Name - 输入发送消息的应用程序名称。
应用程序名称必须只由大写和小写 ASCII 字母、数字、下划线、连字符和句点组成,长度必须在 1 到 256 个字符之间。它们也必须是唯一的。
- PEM Certificate / API Key - 对于 iOS(APNS 或 APNS_SANDBOX),使用你的 PEM 文件的完整内容。
SetupPushNotification 的调用。响应应类似于下面的示例。
注册你的 iOS 客户端以进行推送
对于 iOS,你必须依赖 iOS 处理推送通知的默认行为,因为 PlayFab 目前不提供 Unity 上的原生实现。 默认情况下,游戏在后台时收到的通知将被路由到通知区域。 或者,游戏为活动应用程序时收到的通知将被静默接收,并且不会在通知区域中显示。- 示例中的以下代码在
client Start()上运行。
- 此时,如果用户已选择接收通知,我们可以调用 PlayFab API RegisterForIOSPushNotification。
- 如果没有错误发生,恭喜!你的 iOS 客户端已成功链接到你 title 的 Apple 通知通道。
iOS 故障排除
- 验证你拥有有效的 .pem 文件。
- 确保在
SetupPushNotification中使用的相同证书被 XCode 用于签署你的 App。 - 验证 XCode 中你的构建已启用 Push Notification API。
- 验证你的签名证书与 PlayFab 平台匹配。运行 SetupPushNotification 时,使用
OverwriteOldARN = true将通道重新绑定到新平台。给定时间内 title 上只能有一个 iOS 环境(APNS 或 APNS_SANDBOX)处于活动状态。
其他支持
如需帮助、示例 bug 和相关问题,请在我们的论坛上留言。目前,我们仅支持本文档中描述的标准流程的服务。如果你的团队正在寻找其他常见推送服务或插件的其他功能,请告诉我们!我们喜欢从开发者社区获得反馈。
