iOS集成友盟消息推送

集成iOS友盟消息推送主要分为两步:1.iOS推送证书配置;2.U-PushSDK集成与配置。

写在前面

1.假设你使用过Apple设备(iMac/iPad/iPhone)且注册过Apple ID(Apple Account)。       

2.假设你或你所在的开发组已加入苹果开发者计划(Enroll in iOS Developer Program to become amember),即已注册开发者账号(Apple Developer Account)。

3.若要真机调试实践,你必须至少拥有一台装有Mac OS X/Xcode的Mac开发机(iMac or MacBook),其上自带原生的Keychain Access。

一.iOS推送证书配置

作为一个小白,在配置ios推送证书之前我们需要知道,证书是什么以及我们为什么要配置?

iOS证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的。

iOS证书分为两类:Development和Production(Distribution)。                               

1)Developer Certification(开发证书)                                                                                

安装在电脑上提供权限:开发人员通过设备进行真机测试。可以生成副本供多台电脑安装;

2)Distribution Certification(发布证书) 

安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。不可生成副本,仅有配置该证书的电脑才可使用。

Provisioning Profile(授权文件)

1)Developer Provisioning Profile(开发授权文件)

在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。

注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。

2)Distribution Provisioning Profile(发布授权文件)

在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。

Keychain(开发秘钥) 

安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本(导出证书重新命名)就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。

废话不多说,开始走流程。参考文档:友盟iOS证书配置指南

说明:使用消息推送功能前,需要严格按照此文档配置相关证书。否则将会影响消息推送组件的正常使用。

1.1 创建APP ID

登录Apple Member Centerhttps://developer.apple.com/membercenter选择certificates,identifiers&profiles选项,如下图所示:

选择identity中的APP IDs,如下图所示:


注意:创建Explicit App ID时,要注意此时设置的Bundle ID要与APP中的的Bundle ID一致,如下图所示:


选择Push Notification来开通Push功能,如下图所示:


点击下方的register按钮,几秒钟之后下方会变成一个Done,表示APP ID已经创建完成,如下图所示:


注意:创建的APP ID要与自己项目的Bundle ID保持一致。如果已经有APP ID,请确保自己的APP ID已经开通了Push功能,如果没有开通,可以点击APP ID,在其底部有一个Edit按钮,点击后选中Push服务并创建,如下图所示:

至此,APP ID创建完毕

1.2 创建并配置CSR文件

CSRCerificate Signing Request的英文缩写,即证书请求文件。证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件。证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

在你的Mac中找到钥匙串——->钥匙串访问———>证书管理———>从证书颁发机构请求证书,如下图所示:


设置完证书信息后,点击“继续”,然后选择存储位置,点击存储,至此,CSR文件创建成功

1.3 创建并配置开发调试证书

如果你已经有开发调试证书,请继续进行下一步的设置

选择Development(如果是发布上线,需要选择Distribution),如下图所示:

接下来,我们选择iOS App Development证书,如下图所示:

在choose file…中选择本地的CertificateSigningRequest(CSR)文件,然后点击继续,如下图所示:

点击Download,将证书下载到本地双击下载的开发调试证书(文件名为:iOS_development.cer),双击完会打开钥匙串应用程序,就可以在钥匙串访问中的我的证书中找到。至此,开发调试证书设置完毕。

1.4 添加测试设备

首先需要获取需要测试设备的设备UDID:将测试设备连接iTunes即可查看UDID:


测试推送需要添加测试设备(就是存储需要测试设备的名称和设备UDID),添加方法如下所示:

1.5 创建并配置Provisioning Profiles

选择Development,创建开发环境的Provisioning Profiles(如果是发布上线,需要选择Distribution),如下图所示:

创建新的Provisioning Profiles并选择之前生成好的App ID。如下图所示:

选中证书:

选中测试设备:

把创建的Provisioning Profiles,调试证书,推送证书下载下来(文件名:umengpushtestdemo.mobileprovision)以后双击证书

创建并配置推送证书(开发环境&生产环境)

选择Apple Push Notification service SSL(Sandbox)

注意:推送证书分为开发环境和生产环境,如果需要生成生产环境的推送证书请选择:Apple Push Notification service SSL (Sandbox&Production),如下图所示:

选中APP ID后,点击continue,直到上传CRS文件,如下图所示:

点击Download,将证书下载到本地后,双击下载的开发环境推送证书(文件名为:aps_development.cer),就可以在钥匙串访问中的我的证书中找到。

1.6 导出推送证书的P12文件

注意:在钥匙串访问(KeyChain)的我的证书中选择刚刚导入的证书,选择导出,注意不要选中私钥,并设置相应密码即可。



注意:此步骤所设置的密码将在之后在U-Push后台上传推送证书时所使用,且密码只能包含大小写(a-z,A-Z ),数字(0-9),特殊字符(.-_),其他元素将会被过滤。

生产环境的推送证书也是以同样的方式导出。

至此,P12证书导出完毕。

1.7 在U-Push后台上传P12推送证书(U-Push后台传送门

点击右上角“新建应用”:


然后以同样的上述方式,配置成产的证书,并导出p12文件设置密码,上传到umeng官网后台的生产证书项里。

二.U-PushSDK集成与配置

下面我们选用手动集成的方式进行U-PushSDK的集成:

参考文档:U-PushSDK友盟集成文档

2.1 下载iOS端的SDK(由于本人目前的项目是基于Cordova的WebApp所以选择下载PhoneGap版的SDK)


2.2 组件化基础库UMCommon集成

组件化基础库UMCommon集成,请查看文档 组件化Common集成文档

需要添加的依赖库:

1.UMCommon.framework;(将下载的SDK解压,复制该组件库到项目的相应目录中)

2.UMPush.framework;(将下载的SDK解压,复制该组件库到项目的相应目录中)

3.CoreTelephony.framework 获取运营商标识;

4.libz.tbd  数据压缩;

5.libsqlite.tbd  数据缓存;

6.SystemConfiguration.framework  判断网络状态

如果是基于cordova的webApp还需要添加桥接文件(XXXX.Module.h,XXXX.Module.m)

操作流程如下:

1.选择SDK功能组件并下载,解压.zip文件得到相应组件包(例如:UMCommon.framework, UMPush.framework这来个库必须添加进来)。

XcodeFile —> Add Files to "Your Project",在弹出Panel选中所下载组件包->Add。(注:选中“Copy items if needed”)

UMCommon.framework, UMPush.framework这来个库必须添加进来

添加依赖库,在项目设置target -> 选项卡General ->Linked Frameworks and Libraries 如下以及效果:

如果是webapp还需要引入桥接文件


2.3 U-Push基础功能


2.3.1 打开推送开关

2.3.2 打开后台推送权限设置

接下来我们就需要进行代码的初始化了↓↓↓↓↓↓↓↓↓↓↓↓↓

进入到AppDelegate.m

具体代码:U-Push友盟集成文档




运行项目,可以在控制台中看到deviceToken,复制deviceToken,添加到U-Push后台测试设备中



之后就可以发送推送测试消息了。




至此iOS集成友盟消息推送的过程大致实现,更多U-Push高级功能或疑问请参考友盟的U-Push集成文档

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容