个推推送iOS版 常见问题详解

原文:http://www.oschina.net/question/1782938_234760
 
1 、提交了.p12文件后多久可以测试?

提交后10分钟左右才可以测试,并不是立即生效的。

 
2 、应用在后台时接收不到消息,即APNS消息接收不到?
1.    先去查看CID和APPID绑定是否正确。
2.    根据CID去查devicetoken,确认CID和devicetoken绑定是否正确。
3.    查看证书是否上传错误

4.    服务端推送的,请检查离线时间是否设置。

 
3 、devicetoken和Clientid绑定错误怎么办?

原因如下:换证书环境后,devicetoken是变掉了,但是CID没变导致不会立即重新绑定devicetoken(一般是24小时后会重新绑定),服务端记录的还是原来的devicetoken。解决办法如下:需要一个gxsdkconfig.plist文件重新放在工程中,打包,卸载原来的应用并重新安装。CID变化了会重新绑定devicetoken,这样绑定就不会有问题了。

 
4 、在发布到appstroe时,证书环境需要更换吗?
1.    开发的时候需要上传开发证书,开发测试OK后,发布到appstore之前,需要把证书更换成生产证书,证书更换后10分钟左右生效。
2.    苹果设备上,CID是唯一的,一般不会变化,一般不建议重新生成CID。

3.    如果CID与deviceToken绑定错误,需要重新生成一个CID来方便测试的操作方法:需要gxsdkconfig.plist文件,重新打包,把原来应用卸载重新安装新打包的这个。   

 
5 、更换证书后,客户端隔多久会重新绑定?

1.    证书更换后, 过24小时才会重新绑定一次,这时devicetoken会变掉。24小时内做测试的话,会因Clientid和devicetoken绑定问题导致消息接收不到,因为证书更换后的devicetoken变掉了但没有更新到服务器,导致服务端查询到的devicetoken是错误的。

 
6 、无效的devicetoken问题
1.    一般来说是证书环境的问题,更换证书环境导致的。
2.    先看clientid和devicetoken绑定是否有问题。
3.    查看本地的证书环境是否与平台上传的证书环境一致。

4.    查看证书是否有过期。

 
6 、为什么IOS客户端会收到两条一样的消息?
1.    是因为一个devicetoken绑定了两个Clientid导致的。

2.    因证书环境变更,导致Clientid与devicetoken绑定变化,但服务端的数据没有更新,还是与旧的devicetoken绑定的。当用plist文件获取到新的clientid后,会重新绑定一下,这时新旧两个clientid都会绑定到同一个devicetoken上。当群推消息时,会根据clientid找到devicetoken进行APNS发送,这时新旧两个clientid都会发送一条数据,导致客户端会接收到两条数据。

 
7 、Tcp方式和http在性能上哪个比较好,各适用与哪个场景?
tcp是长链接,吞吐量更大,性能更好一些
tcp不支持toApp群推的

群推toApp用http方式的,因为只有一个请求

 
8 、IOS平台推送成功接收,服务端代码推送toApp却接收不到,返回AppIdNoUsers错误?

查看代码里的phoneTypeList中添加的是否为IOS。要修改为add(“IOS”)

 
9 、IOS签名失败的解决办法:
问题描述:The applicationdoes not have a valid signature.

解决办法:把BundleIdentifier 改成你自己的id,也就是说这里应该填你们证书里面已经申请的那个应用id。

 
10 、生产证书下怎么获取devicetoken?

生产证书不能在Xcode里进行联机debug,要先把应用包打出来,安装在手机上,然后在Xcode的origanizer->device选择你的设置,然后在consloe里查看日志,devicetoken和clientid都会打印出来的。

 
11 、ios开发证书以及生产证书打包教程
1、生产环境证书: http://wenku.baidu.com/link?url=YhxG022XH_BlvRRZxutnDz0ANEvCm6W9218tIVzX_PEHNtZ2T1K9Y_d-g7jm9-JnFAcWByXcJF6EqHBmVeXlbvmmLfElXtb5-kuf2il4Qae

2、开发环境证书:http://wenku.baidu.com/view/6dddcd27192e45361166f505.html

 
12 、关于ios8的通知功能:
1.如果使用ios8sdk编译,需要使用新的registerForRemoteNotifications/registerUserNotificationSettings接口,否则无法获取devicetoken

2.如果使用ios8以前的sdk编译,接口无需变动,直接使用老版本的registerForRemoteNotifications接口即可

 
13 、收到通知后,点击通知栏后怎么让这条通知在通知栏里消失。
这个通知本来是不会清掉的,需要客户端自己写代码才能清掉,可以参考这里  http://www.cocoachina.com/ask/questions/show/99491
 
14、每次进行推送时,从屏幕上边弹出的提示框每次都是弹出两次,通知栏显示一条!

 ios9有这个bug,是系统本身bug,尝试重启试试

你可能感兴趣的:(个推推送iOS版 常见问题详解)