离线推送收不到,按照下面步骤一步一步进行排查:
0、如果你的app之前可以收到离线推送,突然收不到了,那么先到苹果开发者中心查看推送证书是否过期。如果过期了,需要重新制作证书,然后到环信管理后台将旧的删掉再上传新的,证书名称不要变。过期的一般会被封禁,需要联系环信进行解封操作。
关于管理后台,这里详细讲解下:
如图,登录客服系统,来到 管理员模式--渠道管理--手机APP 页面:
如果手机APP里的【直接登录IM关联后台】按钮可点击,那这个app关联就是快速创建的,点击即可进入管理后台上传证书
如果手机APP里的【直接登录IM关联后台】按钮不可点击,那这个app关联就是手动关联的,要到IM的Console后台上传证书:Console后台
1、首先已经按照环信的文档集成了离线推送:离线推送
2、如果是iOS13及以上的系统,那么需要将IM的SDK更新到3.6.4或以上版本。如果更新后还不行那么退出登录、重启app、再登录试下。
HelpDesk 是客服的SDK,Hyphenate 是IM的SDK。
//初始化sdk成功之后打印版本号:
NSString *kfver = [HDClient sharedClient].sdkVersion;
NSString *imver = [HDClient sharedClient].imSdkVersion;
3、测试APNs推送的时候,接收方的APP需要是杀死状态,需要用户长连接断开才会发APNs推送。
所以直接上划杀死APP测试。
4、要确保导出p12时使用的Mac和创建CertificateSigningRequest.certSigningRequest文件的Mac是同一台;导出证书的时候要直接点击导出,不要点击秘钥的内容导出;确认 APP ID 是否带有推送功能;
5、在管理后台上传证书时,选择的证书类型必须与推送证书的环境一致;导出.p12文件需要设置密码,并在上传管理后台时传入;
6、工程中初始化SDK那里填的证书名与环信管理后台上传的证书名称必须是相同的;
7、测试环境测试,需要使用development环境的推送证书,Xcode直接真机运行;
正式环境测试,需要使用production环境的推送证书,而且要打包,打包时选择Ad Hoc,导出IPA安装到手机上。
8、APP杀死后至环信管理后台对应的应用下查看登录的用户ID,确认证书名称是否有绑定(正常情况下,登录成功后会绑定上推送证书,绑定后会显示推送证书名称);还需要确认绑定的证书名称和管理后台上传的证书名称是否一致。
如果没绑定上,那么退出登录、重启app、重新登录再试下。
如果证书名称不一致,改正过来后重新登录试下。
9、如果以上都确认无误,可以联系环信排查。需提供以下信息(请勿遗漏,以免反复询问耽误时间):
appkey、devicetoken、bundle id、证书的.p12文件、证书名称、证书密码、收不到推送的环信id、测试的环境(development or production)、消息的内容和发送时间