作者:Loving_iOS
转载请标明出处:http://blog.csdn.net/loving_ios/article/details/48980457
一、消息推送的基本概念
@在实现消息推送功能之前先来了解一下消息推送的基本概念:
@介绍一下苹果的推送机制(APNS)
Provider是给你手机应用发出推送消息的服务器,而APNS(Apple Push Notification Service)则是苹果消息推送服务器。你本地的服务器当需要给应用推送一条消息的时候,先要将消息发出到苹果推送服务器,然后再由苹果推送服务器将消息发到安装了该应用的手机。
接下来再看一张解释图:
根据上面可以得出:要想实现消息推送,必须满足1个前提5个步骤。
前提:必须真机才可以实现。
步骤:
1.你的IOS应用需要去注册APNS消息推送功能。
2.当苹果APNS推送服务器收到来自你的应用的注册消息就会返回一串device token给你(很重要)
3.将应用收到的device Token传给你本地的Push服务器。
4.当你需要为应用推送消息的时候,你本地的推送服务器会将消息,以及Device Token打包发送到苹果的APNS服
5.APNS再将消息推送给目的iphone对应的应用。
二、消息推送相关证书
消息推送需要三个重要组成部分:AppID(Bundle identifier)、推送证书(与AppID、CSR文件关联)和描述文件(与AppID、注册设备关联),下面讲解如何获取这三个部分。
首先你应该有苹果开发者账号,如果没有可以注册(购买)。搜索苹果开发者中心,进入平台,因为外国服务器,所以很卡,请耐心等待,建议使用Safari浏览器。
进入平台后点击会员中心,进入注册登陆页面,在这里不讲注册,假设你已经拥有开发者账号。
登陆账号
登陆成功后,点击对应选项,进入获得相关证书页面:
选择iOSApps 对应的Identifiers:
接下来是获取App ID的过程:
如图,点击加号添加AppID,并填写相应的描述名称,不允许带有特殊字符。Bundle ID一定要和工程中的Bundle Identifier一致,否则不能成功(可以先填写这个地方再修改工程中的Bundle Identifier,也可以将工程的Bundle Identifier复制到该位置),这是唯一的Bundle ID。并且勾选Push Notification选项。点击Continue。如果你不需要将Bundle ID设成唯一的,可以适应不同的工程,你可以选择下面的WildCard App ID,将Bundle ID设置成com.domainname.*格式,那么你的工程Bundle Identifier就可以设置成com.domainname.+工程名了,这时可以是任意工程名都可以。只要前面的com.domainname.一致就可以了。
如果出现该状态说明获取成功,点击提交。
接下来是获取推送证书的过程:
和获取App ID类似,如图所示。
选择APNs选项。
选择你刚获得的appID。
点击继续:
这里需要一个CSR文件,接下来我们讲解如何得到这个CSR文件。
获取CSR文件步骤:
1、打开钥匙串访问工具,如图选择相应的选项。
2、点击从证书颁发机构请求证书...然后填入相应的内容,选择存储到磁盘。
3、存储获得的CSR文件,完成。
回到获取推送证书的地方,将刚得到的CSR文件导入:
接下来是获取描述文件的过程:
和上面类似首先添加选项:
如图选择相应的选项:
选择对应的AppID:
选择开发者平台获取的开发证书, 继续:
选择注册好的设备:
给描述文件一个名字:
下载描述文件:
到目前为止已经获得到APP ID ,推送证书,和描述文件。
现在关于实现推送功能的准备工作已经完成。下面请阅读下一篇iOS经典讲解之实现App消息推送功能(二)
注:关于开发证书的获取和注册设备的相关内容,我们在这里不做介绍,假设大家已经有开发证书并且已经注册过设备。
上面的介绍是开发环境下的步骤,如果是上线项目类似。