iOS—— 秒学远程推送

一. 引言
iOS 中消息推送两种方式,分别是本地推送、远程推送。
这里主要将远程推送与配置过程。

二、远程推送机制的原理
这里写图片描述
这张图很清晰,大致意思是:你的应用服务端将消息发送到apple 的APNS服务器,APNS服务器将消息推送到指定的IPhone,最后由IPhone负责将消息推送至你的APP。虽然中间加了APNS,感觉好像增加了负担,其实恰恰相反, 因为apple 对推送的统一管理,使我们开发中者的工作变得异常简单。

三、实现APP 收到远程推送(真机测试)*
(1) 请求CSR 文件*
在MAC应用程序中找到钥匙,打开它。
点击选项栏中的钥匙访问中的证书助理:
iOS—— 秒学远程推送_第1张图片
选择从证书颁发机构请求证书
iOS—— 秒学远程推送_第2张图片
填写电子邮件和名称,选择存储到磁盘,然后继续。
这时,我们存储的地方有这样一个文件:CertificateSigningRequest.certSigningRequest。

(2)创建AppId*
到 https://developer.apple.com/ 的member Center:
这里写图片描述

使用开发者账户登录,登录后选择Certificates:
iOS—— 秒学远程推送_第3张图片
iOS—— 秒学远程推送_第4张图片
如果你的项目中已经创建了APP id,则可以不用重新创建,但是你创建的APP id 必须支持远程推送。如果还没有创建,点击 + 号,创建一个。
iOS—— 秒学远程推送_第5张图片
之后的界面中APP ID 有两种类型:Explicit和Wildcard,分别是特殊的和通配的,我们需要推送功能,设置App ID 的name
iOS—— 秒学远程推送_第6张图片

这个ID不能是通配的,所以我们选择第一个。设置App ID 的Bundle ID

iOS—— 秒学远程推送_第7张图片
这里需要填写Bundle ID (记住此时设置的Bundle ID, 程序中需要修改的与其一致)设置程序中的Bundle ID,点开左面三列,都要设置Bundle ID
!
iOS—— 秒学远程推送_第8张图片

在APP ID的服务设置中,将Push Notification勾选上,点击continue。
iOS—— 秒学远程推送_第9张图片

之后点击submit,最后点击Done。这时我们的APP IDs列表中会出现我们刚才创建的APP ID。

(3)创建测试证书(一个账号只能创建一个)
选择Certificates中的Development,点击 + 号创建,选择第一个。然后点击continue。(这里已经创建过,不能在创建)
iOS—— 秒学远程推送_第10张图片

(4)创建推送证书
选择Certificates中的Development,点击 + 号创建,选择第二个。然后点击continue。
iOS—— 秒学远程推送_第11张图片
点击后出现下面界面:出现App ID 选项。这个App ID 就是我们步骤(2)创建AppId中 的Bundle ID,然后点击continue。
iOS—— 秒学远程推送_第12张图片

继续点击continue,出现下面页面,选择choose file, 导入步骤(1)请求CSR 文件:CertificateSigningRequest.certSigningRequest
iOS—— 秒学远程推送_第13张图片

iOS—— 秒学远程推送_第14张图片
点击create后,出现下面页面, 此时点击蓝色
Download, 下载
iOS—— 秒学远程推送_第15张图片
下载后的文件
iOS—— 秒学远程推送_第16张图片

应用
(1)打开钥匙串访问, 双击刚刚下载的aps_development.cer 文件,会在钥匙串访问我的证书中新出现一个证书。例如下图:
这里写图片描述
右键新创建的证书,选择导出,需要自己设置密码(记住设置的密码,后面使用),点击好,导出成功。
iOS—— 秒学远程推送_第17张图片
iOS—— 秒学远程推送_第18张图片
打开一个第三方,这里使用的是极光, 进入官方网站,点击创建应用,输入应用名称,导入iOS开发证书,就是刚刚从钥匙串访问中导出的证书,开发证书密码:刚刚导出时自己设置的密码。都弄好后,点击创建我的应用。
iOS—— 秒学远程推送_第19张图片

(4)创建描述文件

选择右侧的Provisioning Profiles -> Development .。点击+ 号,勾选第一个如下图
iOS—— 秒学远程推送_第20张图片
点击Continue后出现下面页面, 选择App ID ,这里的App ID就是步骤(2)创建AppId 中设置的App ID name。如下图:
iOS—— 秒学远程推送_第21张图片
点击Continue后,跳出页面点击Selecte All (也可根据自己需要挑选),
继续点击Continue,出现下一个页面同上步骤,
继续点击Continue出现下面页面,设置 Profile Name:(随意)
iOS—— 秒学远程推送_第22张图片
点击Create创建,出现下面页面,表示创建成功。 此时点击DownLoad下载。
iOS—— 秒学远程推送_第23张图片
下载后的文件

iOS—— 秒学远程推送_第24张图片

应用
打开xcode,双击刚刚下载的 Green12345.mobileprovision 描述文件。
设置Build Settings 中的 Code Signing。
Code Signing Identifity 设置为自己的开发者账户
Provisioning Profile 设置为描述文件名称
iOS—— 秒学远程推送_第25张图片

再进入极光官网文档-> 入门指南 -> iOS 集成指南 http://docs.jpush.io/guideline/ios_guide/
根据其步骤进行设置(有些之前已经设置过)。设置好之后就可以运行了。
2、导入API开发包到应用程序项目,需要下载极光提供的 iOS SDK 。
5、创建并配置PushConfig.plist文件
{
“APS_FOR_PRODUCTION” = “0”;
“CHANNEL” = “Publish channel”;
“APP_KEY” = “AppKey copied from JPush Portal application”;
}
最后一项 AppKey copied from JPush Portal application 意思是复制JPush 中的App Key,就是下图的App key
iOS—— 秒学远程推送_第26张图片

好了,所有的设置后之后就可以真机运行了,虽然有点麻烦,但是详细步骤已写清楚,按照步骤来都可以。
程序运行中可能出现的错误可参考 极光官网的常见问题:http://docs.jpush.io/guideline/faq/,非常有用奥。。。。

你可能感兴趣的:(OC,UI,iOS)