原文: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,尝试重启试试