基于UMeng消息推送测试-demo教程(iOS版)

基于UMeng消息推送测试-demo教程(iOS版)

眼看着就要过年了(2017本命年终于快过去了临来崭新的2018大发年),每个人的心里就像飞了一样,这个时候能够在办公间待下来的,每个人都是精英,突然想起了那首张含韵的歌《放假了》。

今天是2017年腊月25距离2018年仅有5天,依旧在外拼搏着,马路俩边的商铺陆陆续续关门(有钱没钱回家过年!!!)

好了,进入正题~~~

前年写个一篇《基于UMeng第三方分享(新浪)测试-demo教程》教程,感兴趣的可以看一下,由于时间比较老旧可能有些操作流程更新了,但是不要紧,大体流程依旧在。

由于要做带有推送的app, 最终商量决定运用UMeng的SDK推送,这里的需求就是我们app自己的服务器通过umeng-sdk去推消息。

而不是通过Umeng的官网后台去编辑消息进行推送。这里需要安卓,iOS,以及我们的app java server 都需要进行umeng-sdk的集成。而今天这篇教程是通过Umeng的官网后台去编辑消息进行推送,后续再陆续进行更新以上需求教程

通过Umeng的官网后台去编辑消息进行推送到app

1.集成sdk

1.1.下载iOS端的umeng-sdk

Push SDK 3.0.1

下载后的文件是如下这样的:

Push SDK 3.0.1里的内容

其中:Common  // 公共组件是所有友盟产品的基础组件,必选

push    // Push组件

1.2.添加依赖库

基础依赖库

CoreTelephony.framework 获取运营商标识

    libz.tbd  数据压缩

    libsqlite.tbd  数据缓存

    SystemConfiguration.framework  判断网络状态

可选依赖库

  SecurityEnvSDK.framework 金融风控组件 

  UTDID.framework 设备标识ID组件

上述的可选依赖库在thirdparties文件夹里

SecurityEnvSDK.framework 金融风控组件   UTDID.framework 设备标识ID组件

笔者在添加可选依赖库后,运行报错,我就把它给删除了(不添加可选依赖库)

1.3.选择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 如下以及效果:

整体效果

1.4.打开推送开关

点击项目---->TARGET---->Capabilities,将这里的Push Notification的开关打开,效果如图所示:

Push Notification的开关打开

同时点击项目---->TARGET---->Capabilities-->Background Modes--->Remote notifications也要勾选上,如下:

TARGET---->Capabilities-->Background Modes--->Remote notifications也要勾选上

至此工程的配置已经完成了,接下来就是代码的编写,但是这之前还需要进行证书的配置。

2.iOS证书配置指南

是为了在umeng官网上传自己的p12证书,注意需要测试证书和生产证书,都需要上传,已经你导出p12时设置的密码

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

本文档包括:

创建APP ID        // 类似于身份证标示

创建并配置CSR文件         // CSR是Cerificate Signing Request的英文缩写,即证书请求文件,在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件

创建并配置开发调试证书           // Certificates

添加测试设备

创建并配置Provisioning Profiles   // 配置概要文件

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

导出推送证书的P12文件

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

*以Ad Hoc方式打包应用

iOS 10证书配置教程

2.1创建APP ID

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

选择certificates,identifiers&profiles 选项

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

Identifiers也就是一个标示相当于身份证号码

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

注意此时设置的Bundle ID要与APP以后的Bundle ID一致


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

Push Notification 来开通Push功能

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

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

至此,APP ID创建完毕

2.2.创建CSR文件

如果你已经有CSR文件,请继续进行下一步的设置。(跳过2.2步骤的操作)

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

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

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

文件如下:PushTestCertificateSigningRequest.certSigningRequest

PushTestCertificateSigningRequest.certSigningRequest

2.3.创建开发调试证书

如果你已经有开发调试证书,请继续进行下一步的设置。(跳过2.3步骤的操作)

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

在这里我们先选测试证书(开发证书),后文中也会进行生产证书操作(Distribution),应为umeng官网后台同时需要开发证书(也就是测试证书)和生产证书

之后,你将看到如下四个证书。这一步,我们选择iOS App Development证书,如下图所示:

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

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

点击Download,将证书下载到本地,双击下载的开发调试证书(文件名为:iOS_development.cer)

点击Download,将证书下载到本地,双击下载的开发调试证书(文件名为:iOS_development.cer),就可以在钥匙串访问中的我的证书中找到。(这里必须要注意的是:必须要双击下,否则,后面的推送会出现
状态:失败 

消息:device-token全部失败

的情况自己不注意的坑)

造成的失败,笔者就失败在这里了

下载后的文件如下:

ios_development.cer

至此,开发调试证书设置完毕

2.4. 添加测试设备

测试推送需要添加测试设备,添加方法如下所示:

2.5.创建Provisioning Profiles文件 (配置概要文件)

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

开发的配置概要文件
开发的配置概要文件

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

选择之前生成好的App ID

选中创建的证书:

选中创建的证书:

选中测试设备:

选中测试设备:

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

文件如下:umengtestdemo.mobileprovision

umengtestdemo.mobileprovision

2.6.创建推送证书

选择Apple Push Notification service SSL(Sandbox)

这里笔者先选开发的推送证书

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

Apple Push Notification service SSL (Sandbox&Production)

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

选择上方的PushTestCertificateSigningRequest.certSigningRequest文件

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

文件如下:aps_development.cer

aps_development.cer

2.6.导出推送证书的P12文件

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

正确的导出方式:

错误的导出方式如下:

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

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

至此,P12证书导出完毕。

2.7. 在U-Push后台上传P12推送证书

点击应用进入应用信息选项,即可上传已被导出的P12证书,如下图所示:

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

3.工程代码的编写

4.在umeng官网后台的操作

,上述步骤中- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{里会打印device token 的值64位的字符,添加到umeng官网后台的测试设备里

然后就是官网后台发送推送的操作,可以用单播的形式:

最终实现的效果图:


下面说一下关于umeng推送过程中遇到的坑:如下图:

device-token全部失败
device-token全部失败
DeviceTokenNotForTopic

这里一系列的原因:umeng官方并没有给出具体的解决方案,联系客户又是那么费时费力

解决方案1:

添加测试机设备的DeviceToken无效或者失败,报红色或者黄色都是不行的,

解决方案2:

配置证书时选的appID 必须和x-code里的Bundle Identifier相同,这是最大的一个坑,详细参见:http://bbs.umeng.com/thread-16274-1-2.html

demo地址:

https://github.com/mrzhao12/UMengPushTest

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

推荐阅读更多精彩内容