我已经设法将GCM与Android设备一起使用,但现在我正在尝试在iOS应用上实现.
我想我已经遵循了所有必要的步骤来使用GCM服务.我已按照https://developers.google.com/cloud-messaging/ios/client?configured=true将服务添加到现有应用中.
我认为一切都配置正确,但我无法收到任何通知.我有APN证书和GoogleService-info.plist文件,在控制台上这是输出:
2016-01-05 13:47:53.864:GCM | 签入plist中的密钥无效:GMSInstanceIDDeviceDataVersion连接到GCM 2016-01-05 13:47:57.501:GGLInstanceID | 将来的签到时间戳无效.2016年1月5日13:47:57.501 TerneraGallega [1014:444977]与AUTHID签到成功:4958686017822257121,消化:KSJNg + Aj82uavBXrFeOAfA ==,lastCheckinTimestamp:1451998077000注册令牌:NC-dd9fCvFs:APA91bHMfbvLczxSPLQsLeEJASU_RfV4wvVuPs2u4VJDtpC8oB2cm1AKr6cH_LFeLsQzb94Kk9iwez8fsOvgzNns_9DU3i8Ema1oCKIwcNFzenNpAhViyGHah4E7-RkQlg1durYSEQRD已订阅/主题/全球
如果我发出POST请求,我会收到此消息:
{ "到": "NC-dd9fCvFs:APA91bHMfbvLczxSPLQsLeEJASU_RfV4wvVuPs2u4VJDtpC8oB2cm1AKr6cH_LFeLsQzb94Kk9iwez8fsOvgzNns_9DU3i8Ema1oCKIwcNFzenNpAhViyGHah4E7-RkQlg1durYSEQRD", "content_available":真实的, "通知":{ "体": "伟大的比赛!", "称号": "葡萄牙对丹麦"}}
第一次尝试它返回成功消息,但设备中没有显示日志和通知(应用程序位于前台)
几分钟后,再次尝试POST请求,它将返回失败
{"multicast_id":7256343774952522277,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}
现在,我从Google页面下载了GCM示例,配置了APN并获得了GoogleService-info.plist,当它在设备上打开时启动GCM示例Swift文件它说:
注册成功!检查xcode调试控制台,你可以使用注册令牌...
在此之后,如果您设置POST请求
{ "到": "mVEtHyTXEOg:APA91bGvK_Uf2ZKgpguWUOto3CXQzIT1z22uJ446mYkNqMwL9VLDYdGtdm_4vS8rcl3T9OeqEC1UWbdKAOyuoweW1GiU0mv0cDSPW03y4XGx19JcR6rxsiWRNUjtADX6iNAW8wM8UBJl", "content_available":真实的, "通知":{ "体": "伟大的比赛!", "称号": "葡萄牙对丹麦"}}
它再次返回一个
{"multicast_id":7435981433811133310,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}
在应用程序上实现GCM的人可以指出我缺少的东西吗?
- - - -编辑 - - - -
最后,我通过使用分发证书而不是开发证书使其工作......似乎我已经配置好了但是我遗漏了开发证书.
PS:在ID下的APN配置文件页面中,我启用了两个推送通知证书(这就是为什么我认为所有配置都很好)
但是我会把这个问题保持开放,因为我无法在开发环境下使用它