开发者社区> 问答> 正文

大牛们求个推推送iOS版 常见问题详解

大牛们求个推推送iOS版 常见问题详解

展开
收起
杨冬芳 2016-06-28 12:08:51 2276 0
1 条回答
写回答
取消 提交回答
  • IT从业

    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

    2019-07-17 19:48:11
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载