基于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文件

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

文件如下:aps_development.cer

aps_development.cer

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

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

正确的导出方式:

错误的导出方式如下:

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

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

至此,P12证书导出完毕。

2.7。在U型推后台上传P12推送证书

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

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

3.工程代码的编写

4.在umeng官网后台的操作

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

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

最终实现的效果图:

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

设备令牌全部失败

设备令牌全部失败

DeviceTokenNotForTopic

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

解决方案1:

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

解决方案2:

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

演示地址:

https://github.com/mrzhao12/UMengPushTest

作者:ttdiOS
链接:HTTPS://www.jianshu.com/p/b5078166d9f6
来源:书繁简
繁简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

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

  1. 基于goEasy消息推送的扫码登录

    此篇介绍我做的基于goEasy消息推送的扫码登录的具体实现.将我的思路和代码一起贴出希望能帮助到对此感兴趣的童鞋,同时也希望大家有什么意见和建议也可以向我提出,另外如果有问题想与我探讨的可以加我的扣扣 ...

  2. 抖音微信消息推送情侣告白浪漫(简易版)

    抖音微信消息推送情侣告白浪漫(简易版) 一.首先去微信公众平台用微信扫码登录 登录后会自动生成属于自己的appId,appSecret 二.在上述登录后页面中下拉,用一个手机扫码会生成user_id( ...

  3. 友盟消息推送服务器demo,umeng友盟消息推送功能集成

    umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...

  4. 前端基于uniapp[uniPush]实现APP消息推送(安卓、IOS)

    前提概述:此文章都是基于uniapp中uniPush2实现的在线.离线推送 app消息推送流程 登录开发者中心先填写好项目信息以及配置厂商 在manifest.json文件中勾选推送模块 打包自定义基 ...

  5. 友盟消息推送服务器demo,友盟消息推送总结

    分享的文章连接 1  http://blog.csdn.net/shenjie12345678/article/details/41120637 2:http://dev.umeng.com/push ...

  6. js基于GoEasy消息推送

    GoEasy介绍 GoEasy专注于服务器与浏览器,浏览器与浏览器之间消息推送,完美兼容世界上的绝大多数浏览器,包括IE6, IE7之类的非常古老的浏览器.支持Uniapp,各种小程序,react,v ...

  7. unipush消息推送测试

    在上篇文章中已经说过unipush的配置以及打包了,现在说下如何测试. 1.手机上安装好打包的应用,并且开启通知栏显示(如果不开启手机收到了我们也不会知道) 2.登录Dcloud(https://de ...

  8. 基于SignalR的消息推送与二维码描登录实现

    1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...

  9. PhoneGap极光推送 cordova消息推送

    前言 说一下写这篇文章的初衷.之前做过一个APP用到了消息推送,最近这个项目又用到了推送.但是由于两个项目间隔4个多月,推送集成.使用方式等都忘了,所以当时又去看了以前项目的源码和一些推送相关的博客, ...

  10. IOS消息推送之APNS

    一.背景概述: 1,环境配置 APNS:Apple Push Notification Service.本文对推送相关概念不再赘述,只侧重完整流程. Demo 开发环境:Mac os 10.9.4   ...

最新文章

  1. 统计简单学_基本概念
  2. 改造HINT的输出方式
  3. Socket网络编程--简单Web服务器(2)
  4. 安装python缺少dll_解决Python安装时报缺少DLL问题【两种解决方法】
  5. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
  6. mysql 服务器初始面膜_安全初始化MySql服务器
  7. 第七十九期:阿里程序员感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦
  8. 知己知彼,百战百胜!如何做好干系人管理
  9. Spark GraphX算法 - Connected Components(连通分支)算法
  10. 图片压缩的另一种实现(3)
  11. 用Java动态代理实现AOP
  12. 港媒:中国将斥资1800亿美元建全球最大5G网络
  13. Java咖啡馆(8)——大话面向对象(下)
  14. 辽宁师范大学计算机学院查寝吗,辽宁师范大学宿舍怎么样 住宿条件好不好
  15. 矩阵2-打印魔方矩阵(非常简单)
  16. 关于xpath解析网页中tbody问题
  17. call cs iub wireshark analysis
  18. 我的世界java白天_我的世界怎么设置游戏内的时间为白天
  19. 国赛分区赛awd赛后总结-安心做awd混子
  20. 计算机考试试题的问题,与计算机等级考试试题有关的几个问题

热门文章

  1. 【论文笔记】EagerMOT:3D Multi-Object Tracking via Sensor Fusion
  2. 批量修改bilibili下载视频的文件名
  3. hdu1814 暴力
  4. python浙江医院抢号_医院挂号难?抢号秘籍看这里!
  5. IP地址及其分类(A、B、C类)
  6. 详解Web安全攻防战(DoS攻击、CSRF、XSS、SQL注入)
  7. LayUI中的基本元素之进度条
  8. BNB、HT、OKB全面估值分析——平台币还能涨多少倍?
  9. 宝物志分享:那些具有潜力的彩宝收藏品种
  10. linux自动备份系统快照,我的 Linux 时光机——Snapper系统级自动备份工具