`

关于ios 推送功能的终极解决

 
阅读更多

转 http://www.cocoachina.com/bbs/simple/?t102110.html

 

 

关于ios 推送功能的终极解决

刚刚做了一个使用推送功能的应用 遇到了一些问题整的很郁闷 搞了两天总算是弄明白了 特此分享给大家


本帖 主要是针对产品发布版本的一些问题 综合了网上一些资料根据自己实践写的 不过测试也可以看看


首先要感谢那些富有分享精神的大牛们所作的贡献 让我这个新手可以从零把推送功能整上线。


至于推送功能的原理什么的我就不说了 网上关于推送的资料很多 不过有很多一部分都写的不知所以然 不过原理还是可以弄明白的
这里附上一篇英文帖子链接 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12
中文翻译 http://article.ityran.com/archives/194
我第一次就是看的英文原帖 中文翻译的也很好 不过感觉作者没有亲自试过 我可是实现了哦 。


这里我说我认为比较关键的地方

1生成钥匙串请求问题 在你做一个新的带推送的功能的应用的时候最好重新生成一次钥匙串请求 省的乱
在你生成钥匙串请求的时候 那个CRS文件一定要留着 还有更重要的是你在生成这个钥匙串请求的时候 在钥匙串里边会出来一对密钥 这个一定要注意那一对是刚刚出现的
帖子里边说的导出那个.p12文件就是指刚才那对密钥的私钥的导出文件
(这个不知道怎么把图贴出来 大家可以参考那两个帖子里边的图)

2 必须唯一的标示符App ID 不能用通配符 这个没商量。不过同一个应用测试和发布可以用同一个标示符。


3 APNS地址 
测试地址gateway.sandbox.push.apple.com:2195 
发布地址 gateway.push.apple.com:2195
这两个是有区别的 当然证书也是


4 顺序 我就是被这个顺序搞的郁闷了 
生成钥匙串请求  》》下载开发证书和发布证书(最好都一起下了)》》  配置App ID 把development SSL 和 production SSL 都配置好 下载SSL证书 》》 最后下载Provisioning证书 
一定要这个顺序 密钥 CRS文件 必须匹配 在下载发布证书一定先把 发布的SSL证书下好了 否则就会出现推送成功 客户端收不到问题。


5 真机测试
开发的时候一般我们都是用Xcode直接灌到设备里 这个时候development证书是可以推送成功的 但是production证书却推送不了
不过苹果给我们提供了Ad Hoc测试方式 它使用的是发布证书 如果你不知道Ad Hoc模式可以搜一下 很简单的
这里有一个关键的地方 development和production得到的Token的不一样的 
使用Ad Hoc方式装到设备上得到的就是production Token 所以你在用Ad Hoc方式测试的要使用production Token
如果使用Ad Hoc方式测试没问题 这个发布也就没问题了

还有一个问题就是Token会更新 这个在官方文档中有提到 就是在一定的时间或者刷机某些不经常出现的情况下 苹果公司的服务器可能会更新设备的Token
这里你需要的一个机制来解决这个问题 
我的解决办法是更新应用版本 然后定期删掉服务器就时间比较久的Token 
这样肯定会造成部分没有更新用户收不到推送的问题 不过只要他即时更新就没问题了 这是一个懒办法 
因为我的应用只在程序第一次打开的时候上传一次以后就不传了 这样可以减少服务端的负荷 
不过你是一个推送很频繁应用那就频繁获取频繁的更新服务端记录 这个就根据情况来了 

简单的几点就写到这里 可能有些地方描述的不够清楚 请大家原谅 如果需要帮助可联系我的新浪微博 @一颗有思想的白菜

分享到:
评论

相关推荐

    ios推送工具.zip

    在iOS应用开发中,推送通知是一项至关重要的功能,它允许应用程序在用户不直接与应用交互时向用户发送消息。"ios推送工具.zip"是一个专为iOS开发者设计的工具,尤其适用于Mac用户,它简化了推送通知的测试过程,无需...

    IOS推送消息docx文档

    iOS 推送消息是许多 iOS 应用都具备的功能,它允许开发者向用户推送消息,提高用户体验和应用的粘性。本文将详细介绍 iOS 推送消息的工作机制、证书生成过程和工程代码实现。 一、iOS 推送消息工作机制 iOS 推送...

    PushMeBaby ios推送通知测试工具

    PushMeBaby是一款针对iOS平台的推送通知测试工具,它专为开发者设计,旨在简化和加速iOS应用中的远程推送通知功能的测试过程。在iOS应用程序开发中,推送通知是一项至关重要的功能,它允许应用在后台向用户的设备...

    iOS推送服务器

    在iOS应用开发中,推送服务是一项至关重要的功能,它允许应用程序在后台状态下向用户发送通知。iOS推送服务器,也就是Apple Push Notification service (APNs),是苹果公司提供的一个服务,用于向运行iOS、iPadOS...

    苹果ios推送java服务端耗码demo

    本篇文章将深入探讨如何在Java服务端实现与APNs的集成,为iOS应用提供推送功能。 首先,我们需要理解APNs的工作原理。APNs是苹果提供的一个基于TCP/IP协议的推送服务,它允许服务器将消息推送到已注册的iOS设备。...

    关于IOS_APNS推送消息(iphone端+服务端)

    在iOS应用中集成APNs推送功能,开发者需要做以下几件事: 1. **获取设备Token**:当用户安装并首次运行应用时,应用会请求用户允许接收推送通知。一旦用户同意,系统会生成一个唯一的设备Token,这是设备与APNs...

    ios推送php服务器端

    用php实现ios推送效果的服务器端,简单快捷的实现推送

    IOS推送服务windows服务程序及安装包代码

    在iOS应用开发中,苹果提供了Apple Push Notification service(APNs),这是一个用于向运行iOS、iPadOS、watchOS和tvOS的设备发送推送通知的服务。本资源包含的是在Windows环境下实现APNs服务程序及其安装包的代码...

    友盟推送,安卓,IOS推送

    友盟推送服务是一款针对移动应用开发者提供的消息推送解决方案,它涵盖了Android和iOS两大主流操作系统,旨在帮助开发者提高用户活跃度、提升应用留存率以及进行精准的用户行为分析。在这个服务中,开发者可以向用户...

    ios 消息推送 java后端demo(包括jar包)

    在iOS应用开发中,消息推送是一项重要的功能,它允许服务器向设备发送通知,即使应用程序在后台运行或完全关闭。这个“ios 消息推送 java后端demo”是为开发者提供的一个示例,帮助理解如何使用Java后端实现对iOS...

    iOS 推送测试工具

    mac 上使用的iOS 推送测试工具,dmg格式,安装即可使用

    U盟消息推送_phpios推送_php安卓推送_thinkphp推送

    以上就是关于"U盟消息推送"、"phpiOS推送"、"php安卓推送"以及"thinkPHP推送"的详细解释,希望对理解这些关键技术有所帮助。在实际项目中,理解并掌握这些知识点能够让你更高效地构建和优化消息推送系统。

    ios消息推送源码(含php服务端源码)

    在iOS应用开发中,消息推送是一项重要的功能,它能让开发者在用户不打开应用程序时,向他们发送通知。本文将深入探讨“ios消息推送源码”,包括PHP服务端的实现,适用于那些正在使用Xcode 6.1进行APNs(Apple Push ...

    ios推送java服务端

    在iOS应用开发中,为了实现实时的消息推送功能,通常会使用Apple Push Notification Service (APNS)。在Java服务端实现iOS消息推送涉及到以下几个关键步骤和技术: 1. **应用程序注册消息推送**: 当用户首次启动iOS...

    ios推送java写的后台

    在iOS应用开发中,苹果提供了Apple Push Notification service (APNs) 来实现实时的消息推送功能,让应用程序在后台状态下也能接收到服务器的通知。本文将详细介绍如何使用Java编写后端来实现iOS的推送服务。 首先...

    IOS推送消息

    在移动应用开发领域,**iOS推送消息**是一项关键功能,它能够增强用户参与度,提供即时信息更新,对于提升用户体验至关重要。本文将深入探讨iOS推送消息的工作原理、实施步骤以及必要的证书配置流程,旨在为初学者...

    IOS推送实现(java)

    以上就是使用Java实现iOS推送功能的基本流程和技术要点。通过理解这些步骤,你可以根据自己的需求定制推送服务,例如增加消息队列、日志记录、错误重试机制等。同时,确保遵循Apple的推送策略,避免被封禁。

    iOS苹果推送apns测试工具.zip

    在iOS应用开发中,苹果推送服务(Apple Push Notification service,简称APNs)是苹果公司提供的一项功能,允许开发者向已安装其应用的iOS设备发送消息、通知和其他数据。`iOS苹果推送apns测试工具.zip`文件包含的...

Global site tag (gtag.js) - Google Analytics