友盟推送那些问题(iOS10)

上周,公司要实现推送通知的功能,并决定在项目中集成友盟推送的 SDK来代替之前集成的云巴推送。

云巴推送是什么鬼?让我们来看看它的功能和使用场景。

云巴是一个覆盖全国(即将覆盖美国欧洲)的实时消息发布订阅系统,可以以毫秒级的速度向百万乃至千万终端用户发送大量的消息。云巴适用于对实时性和到达率要求高的应用、游戏、设备。云巴支持手机、平板、笔记本、智能硬件、智能家居等作为终端。

云巴在 Github 上开源地址,云巴使用轻量级的 MQTT 作为协议,主要编程语言为 Erlang。云巴支持 IOS, Android, JavaScript, Socket.IO, PHP, C, C#等语言,可以从任一终端向另一终端发送消息。

云巴的特点是:高并发、低耗费、毫秒级、跨平台、跨设备、跨语言。

云巴的应用场景包括:双向消息推送,私信,即时聊天,多人大型游戏,租车打车通知,远程摄像头控制,远程开关空调,实时更新股票走势,实时更新库存量,活动文字直播,实时地理位置地图,智能硬件的 APP 控制,实时统计图表。

其实云巴和友盟在实现推送功能方面没什么太大区别,只是因为云巴推送是在项目赶工期时的产品,具体的交互界面以及参数都没来得及定!所以推送在本次开发任务中交给了不大熟知云巴的我来做,因此换成了被大家熟悉且曾经集成过的友盟推送!

下面介绍一些集成中常出的问题以及自己出现的问题:

1.友盟后台添加新应用,需要上传 P12文件,而 pem 文件是不能上传成功的(本人没有上传成功)

本人从钥匙串中导出文件是只能导出为 pem 文件,但是导出的 pem 文件却不能被友盟后台识别转换

后来发现所导出的证书下面缺少了私钥,并且左侧没有三角标识,如下图:

于是使用公司的苹果开发者帐号里面重新生成了一套 SSL证书(包含私钥,呈现下三角标识),如下图:

左侧的三角标识显示为上图状况时,导出的p12文件才是友盟后台所需要的证书文件(而非钥匙串的 p12文件),把导出的 p12文件(设置密码*****)上传到友盟后台,并在相应位置输入刚才设置的相对应证书的密码即可添加应用成功;

随后就可以在  应用信息  一栏中查看应用刚刚添加的应用的 Appkey 和 AppMaster Secret,并可以设置公司推送服务器的IP 地址

2.通过 DeviceToken在友盟后台添加测试设备

查看友盟官方相关deviceToken问题的论坛

2.1

1)使用didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token获取 token并使用 NSLog 方法打印出来,但是打印出来的 token 如下图:

2.2

2)此时把以上字符串复制粘贴到图2.1的空格中,会标红报错——Device Token不能包含特殊字符,

分析原因得知:刚才拷贝的内容包含尖括号<>以及空格,所以处理办法是——去掉<>和空格后;

3)根据上一步分析,在图2.1空白处将拷贝的内容修改过后,发现仍然报错——Device Token长度错误

分析原因得知:第一步拷贝到2.1图中空白处的内容因为包含空格和尖括号,所以长度已经超出了64,达到了73,而空白处提示 "输入64位***",所以此处拷贝过来的内容已经被截取了前64位,导致后面的一些字符串被删除掉了,即使删除了尖括号和空格,就会导致被自动截取的前64位中有效的字符串(非空格,非尖括号)不足64位, 所以最有效的处理方法就是———从 1)中拷贝的 token 去除尖括号以及空格

于是获取 token 的方法就使用如下方法:

DeLog(@"UmengDeviceToken-%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]

stringByReplacingOccurrencesOfString: @">" withString: @""]

stringByReplacingOccurrencesOfString: @" " withString: @""]);

4)通过3)获取的 token 拷贝粘贴到空白处,并填写设备名称加以区分,即可添加成功测试设备。

3.友盟后台测试单播和自定义播(alias)都能成功,而公司服务器测试单播可成功,而 alias 报2010错误

查看友盟与Alias对应的Device_token 为空的官方论坛 && 单播可收到,广播收不到的官方论坛

1)检查 iOS 客户端代码是否设置别名成功

客户端设置别名(Alias)代码如下:

[UMessage setAlias:@"alias1310" type:@"alias" response:^(id  _Nonnull responseObject, NSError * _Nonnull error) {

DeLog(@"成功返回数据--%@",responseObject);

}];

并且打印信息显示:成功返回数据--{success = ok} 

2)通过友盟后台的工具检测设置的 alias 是否成功


3)因为安卓都 OK,考虑到安卓和 iOS 的后台是分开集成的,所以让后台人员配合检查其后台相关代码

后台人员检查无误!!!

4)闹心有木有,到底哪里出了问题呢??

有点信不过后台哥们,于是跑到后台看他们的代码以及相关文档如下:

他们也有个 alias_type:"xx",阅读后面描述发现端倪,于是查看后台代码中alias_type 值发现:我的代码中的 type 类型值 和后台的竟然没有统一写成一致的,是不是这个问题导致的呢???

于是飞速再键盘上敲下了相同的 alias_type 值,经过测试发现 OK 啦!  报的错误和真正的问题根源还是不大一样的!哦耶

4.自定义弹框偶尔 会弹出两个弹框——自定义的弹框+友盟的默认弹框

这个问题最初没有发现,后来有一次做断点调试的过程中,发现:两个弹框的Bug必现!!!!!

1)因为测试机是 iOS10以下系统,所以在方法 代理方法 didReceiveRemoteNotification: fetchCompletionHandler: 中查看是否关闭友盟弹框

如果是 iOS10系统,需要再方法userNotificationCenter: willPresentNotification: withCompletionHandler: 中查看是否关闭友盟弹框

结果如下图:

2)查看 友盟推送demo中的代码,是否调用了相同的方法

结果如下图:

比较二者,有没有发现二者的区别;两个方法的调用顺去颠倒也会出现 Bug 的,瞬间解决,哦耶!!!

5.在友盟后台测试推送通知时,客户端经常收不到通知!!!

1)请跳转到知乎相关网址去查找相对应的原因;

2)网络很差,推送有延迟,稍等1-3分钟即可收到;

这就是目前在集成友盟推送的开发过程中遇到的一些小插曲,

希望有同样的问题的人可以通过以上解决方法能够顺利解决!!谢谢

如有更多问题请移步到 【友盟+】消息推送常见问题索引

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

推荐阅读更多精彩内容