推送故障排除指南
您是否在向“所有用户”,“目标用户”或“测试设备”发送推送通知时遇到问题? 本文档将尝试帮助您解决推送通知中的一些常见问题。
1. 诊断当前状态
要开始找到正确的解决方案的过程,您需要回答以下有关发送失败的问题:
检查是否推送发送失败是发生在:
- 总是/有时
- 到所有/特定设备
- 至全部/iOS/Android系统
- 到所有版本/特定版本特定操作系统 (例如,iOS 8 +,Android 2.3.4)
从这里,您可以缩小问题的可能原因。
2. 控制面板错误代码
您可以在“测试设备”和“推送通知报告”中看到错误的原因。
-
转到应用程序设置->测试设备。 然后点击已运行推送应用程序的设备旁边的“发送”按钮。 如果推送成功,您将在屏幕上看到“成功”消息闪烁。 您还将在设备上看到推送通知。 如果不成功,您将在屏幕上看到一条错误消息。
-
如果推送发送的发送率小于100%,则可以通过将鼠标悬停在“发送率”旁边的“?”上来查看被退回的推送数量和原因。
3. 错误代码以及解决办法
iOS
**错误代码** | **解决方法** |
8 | 该应用程序已从此设备上卸载。 尝试在设备上安装游戏,并确保已在设备上启用了推送通知。 |
UnexpectedError | 由于APNS服务器中发生错误导致发送失败。 |
CERT_EXPIRED | 推送证书已过期。请在应用设置->推送页面更新证书。
如何配置推送证书
|
CERT_NOT_PRESENT | 推送证书不存在。请检查应用设置->推送页面。
如何配置推送证书
|
SSLError | 无效的证书。请使用正式环境下的证书文件。
请不要加密文件
如何配置推送证书
|
NoPushToken | (仅测试设备页面)该设备没有推送Token,请确保已安装推送集成应用程序。
测试模式&开发者终端
|
检查列表
- 您可以在设备的[设置> YOUR_APP_NAME]菜单中看到“通知”吗?
- 如果看不到,请选中入门指南中介绍的“注册远程通知”部分。
- 创建配置时是否包括推送服务?
- 您是否添加了用于分别为iOS 7,iOS 8+注册远程通知的代码?
- 请参阅入门指南中的“注册远程通知”部分。
- 是否producation的证书吗? Tapjoy当前不接受development推送证书。
- 您是否使用临时配置来构建应用并将代码签名身份设置为“分发”? 如果您使用的是开发版本,则将无法使用producation推送证书将推送发送到该版本。
Android
**错误代码** | **解决方法** |
NotRegistered
DEVICE_UNREGISTERED | 应用程序已从此设备上卸载。 尝试在设备上安装游戏,并确保已在设备上启用了推送通知。 |
MismatchSenderId
BAD_REGISTRATION | ‘GCM Sender ID’ 和Tapjoy控制面板上API key不匹配
如何获取GCM sender ID 和 api key |
UnexpectedErrorSERVICE_UNAVAILABLE
| 由于GCM服务器错误导致的发送失败。 |
NoPushToken | (仅测试设备页面)该设备没有推送Token,请确保已安装推送集成应用程序。
请检查在应用设置->测试设备页面是否填写了正确的GAID。
Debug Mode & Developer Console
|
InvalidRegistration | 无效的Token格式。请联系您的客户经理。
|
CERT_NOT_PRESENT | Push Certificate does not exist.请检查应用设置->推送页面。
如何获取GCM sender ID 和 api key
|
检查列表
- 您有多个推送提供商吗? (第三方或您自己的推送服务器)
- 请参阅多个推送提供商。
- 您是否在Google开发者控制台中为您的项目启用了GCM?
- 您在Google开发人员控制台中是否为api密钥允许任何IP地址?
控制面板故障排除
- 如果您无法在Tapjoy控制面板中保存api_key和发件人ID,请验证api密钥是否已启用。
- 您还可以运行以下脚本来验证api_key已在GCM中正确注册。
api_key=curl –header "Authorization: key=$api_key" \ –header Content-Type:"application/json" \ https://gcm-http.googleapis.com/gcm/send \
-d "{"registration_ids":["ABC"]}"
- 401响应表示您的服务器密钥无效。
- 有关此问题的更多详细信息,请参见Google文档:https://developers.google.com/cloud-messaging/http
4. FCM API Key安全限制
最近,Google在GCM端不接受无限制api密钥。 如果您在尝试在ltv控制面板上保存api密钥和发件人ID时收到错误消息,则必须在Firebase控制台上导入google项目。
- 访问Firebase控制台,然后单击“导入GOOGLE PROJECT”。
- 选择您的Google项目并导入。
- 单击设置图标,然后选择“项目设置”菜单。
- 选择“Could Messaging”标签,并使用在此页面中API密钥和发件人ID进行ltv控制面板推送。
- 如果您有未列出的问题,请通过联系支持将有关问题的详细信息发送给我们。