推送失败原因

设备注册失败


新创建的app会有一分钟左右的数据同步过程,在此期间注册可能返回20错误码,稍后重试即可。其他情况返回20错误码,请检查access id和access key是否正确配置,常见错误是误用secret key或者access key头尾有空格。



帐号和设备未绑定


对于希望根据帐号进行推送的用户,首先需要将账号与token进行绑定,否则将无法推送成功。



注意:

Android Token长度为40位

iOS Token长度为64位


账号,又称别名,指带有账号登录功能的APP的用户账号,这里不仅仅是QQ或微信,只要是用户的账号都支持,比如手机QQ的账号就是QQ号码,gmail的账号就是邮箱,中国移动的账号就是手机号码。

Android绑定账号在注册时绑定,即:registerPush(context,account)接口,ios通过setAccount设置。



选择帐号推送时,提示token not found,check registration,说明账号没和token关联上,这种情况有两种可能:

1.账号或别名注销了,不一定是app调用,某些情况下可能会自动触发注销的

2.该设备注册了别的账号或别名,这样会自动与原来的解绑。(一个设备只能对应一个别名如果当前别名下没有设备了,就not found了)


绑定账号后,可以通过指定别名(账号)下发通知。通常情况下,这个账号最近登陆过的设备都可以收到通知。用户账号退出时,调用registerPush(context,"*")解除当前账号的绑定。


账号(别名)不允许单字符,一个token只能绑定一个账号,多次绑定时,以最后一次为准。

注意:一个帐号(即别名,account)下面最多可以绑定15台设备,当绑定满后,最新绑定的设备会随机顶掉之前绑定的一台设备token。


Service被终止


service被终止后,由系统、安全软件和用户操作限定是否能够再次启动。

信鸽SDK通过唯一的service与信鸽后台保持通讯,在android中,service被杀死后在没有被系统/安全软件禁止的条件下是能够自启动的,具体可自行网上搜索“android service onstartcommand START_STICKY”

目前,在某些定制的系统(如MIUI)或被安全软件禁止自启动后,只有用户再次打开APP才能重启信鸽service

信鸽service何时能够启动由系统调度确定

在锁屏触屏、网络切换、安装APP、系统重启等条件,信鸽会主动尝试启动service


iOS证书问题


iOS推送提示failed to load certificate,check your APNS certificate对应环境的apns证书没提交。

证书做得不对,请参照官方指南进行制作。


推送环境是否选择正确,测试预览请选择开发环境。

推送环境是否选择正确,开发证书对应测试环境,生产证书对应正式环境。


证书有效期判断

openssl x509 -in xxx.pem -noout -dates


查看连接APNS测试证书是否合法

开发环境


openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert xxx.pem -key xxx.pem 


生产环境


openssl s_client -connect gateway.push.apple.com:2195 -cert xxx.pem -key xxx.pem



消息延时


在Android平台下,推送服务和大多数互联网服务一样,受限于包括网络服务质量、运营商政策或用户需求差异等因素的影响,所以有可能出现延时。另外,如果终端上信鸽service被系统或者安全软件杀死,也会有收不到或延时情况。

在iOS平台下,信鸽负责将消息成功转发给APNS,但APNS是否会成功下发给用户,具体下发多少,折损多少,都受限于包括网络服务质量、运营商政策等因素的影响。


注意:APNS只为离线终端保存一条消息,所以离线终端上线后仅能收到离线期间最新的一条消息。

排查方法


1、设备是否正常联网?

2、accessId、accessKey设置是否与前台注册的一致?

3、当前APP包名是否与前台注册的一致?如果不一致,请在前台选中“使用多包名”选项。

4、设备是否注册成功?

5、前台下发通知时,“时段控制”选项里的时间段是否符合终端设备当前时间?

6、请检查xml的receiver和service标签是否匹配,强烈建议请直接复制demo的例子再修改。

7、请检查是否没有加“android.permission.GET_TASKS”权限的问题





目录

回到顶部