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

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

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

至于推送功能的原理什么的我就不说了 网上关于推送的资料很多 不过有很多一部分都写的不知所以然 不过原理还是可以弄明白的
这里附上一篇英文帖子链接 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 推送功能的终极解决的更多相关文章

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

    刚刚做了一个使用推送功能的应用 遇到了一些问题整的很郁闷 搞了两天总算是弄明白了 特此分享给大家 本帖 主要是针对产品发布版本的一些问题 综合了网上一些资料根据自己实践写的 不过测试也可以看看 首先要 ...

  2. [转]关于ios 推送功能的终极解决

    刚刚做了一个使用推送功能的应用 遇到了一些问题整的很郁闷 搞了两天总算是弄明白了 特此分享给大家 本帖 主要是针对产品发布版本的一些问题 综合了网上一些资料根据自己实践写的 不过测试也可以看看 首先要 ...

  3. iOS 推送功能打包后获取不到deviceToken

    公司项目用ionic3构建, 用了极光推送插件(cordova-plugin-jpush). 开发时一切将各种Bundle Id, 推送证书等都绑定完测试一切正常. 可是要给测试人员打Ad-Hoc包时 ...

  4. iOS推送功能极光推送的介绍与实现

    1.个人整理操作流程 2.官方使用说明流程 2018iOS极光推送完整流程 极光推送官网

  5. React-Native 工程添加推送功能 (iOS 篇)

    推送已经是是手机应用的基本功能,如果自己实现一套推送系统费时费力,所有一般我们会使用第三方的推送服务,这里我使用「极光推送」作为集成推送的例子,因为有现成的 react native 插件 jpush ...

  6. 苹果IOS、安卓推送功能开发

    IOS推送开发:以下是基于开源javapns推送开发1.DerInputStream.getLength(): lengthTag=111, too big.先排除是否由于打包时证书 .p12 文件被 ...

  7. iOS 推送小记

    ios做推送功能时,最烦得就是各种证书的问题,以前自己做的时候经常要反复搞那些证书搞好几遍才能成功,现在发现归根到底都是appid这个东西搞错了,做个笔记记下来,以免忘了. 首先是程序里面注册推送的变 ...

  8. IOS 推送消息 php做推送服务端

    IOS推送消息是许多IOS应用都具备的功能,最近也在研究这个功能,参考了很多资料终于搞定了,下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPh ...

  9. iOS 推送全解析

    本文旨在对 iOS 推送(以下简称 推送)进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacod ...

随机推荐

  1. legend---九、js的核心是什么

    legend---九.js的核心是什么 一.总结 一句话总结:js里面一切东西都是对象,包括数组,字符串,所以你就知道数组啊,对象啊,的很多东西怎么用了 1.js如何合并两个数组? concat,ar ...

  2. 为什么在input中加了display:inline;再加宽,还有作用?

    以前一直一位input是个行内元素,但是,行内元素的特性就是没有宽高的概念,元素多高,多宽,全凭内容撑起来的. 但是今天写了个demo,用chrome控制台显示:display:inline-bloc ...

  3. Generic type test java

    package test; public class GenericTest { public class Room<T> { private T t; public void add(T ...

  4. 关于servlet的@WebServlet注解

    @WebServlet注解用于标注在一个继承了HttpServlet类之上,属于类级别的注解. 1.jsp页面 通过action提交到RegistServlet 类: <form action= ...

  5. 洛谷P2197 nim游戏模板

    Code: #include<iostream> using namespace std; int main(){ int t; cin>>t; while(t--){ int ...

  6. fuser ---显示出当前程序使用磁盘上的某个文件

    fuser 可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser只把PID输出到标准输出,其他的都输出到标准错误输出. a 显示所有命令行中指定的 ...

  7. 05001_Linux简介

    1.Linux的概述 (1)Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯•托瓦兹)起初开 ...

  8. UVA10269 Adventure of Super Mario(Floyd+DP)

    UVA10269 Adventure of Super Mario(Floyd+DP) After rescuing the beautiful princess, Super Mario needs ...

  9. 【Hibernate步步为营】--(一对多映射)之单向关联

    上篇文章讨论了双向关联的一对一映射,用了两个章节,主要是从主键和外键两种关联映射展开具体讨论.双向关联的映射须要在两个映射文件里分别加入相互的相应关系.斌刚在相应的类中加入相应的关联类的属性.这样在一 ...

  10. 一个工作快八年的老IT人士这几年沉浮总结的职场经验教训

    曾经我挺喜欢写博客,认为把心中的想法表达出来非常畅快.而且还能和网上非常多人沟通交流,如今我更喜欢把想法留在心中.博客非常久没更新了,刚才闲来无事.看看职场话题版块发现非常多人都挺迷茫的,所以我写一些 ...