极光征文 | 我和极光推送、统计、崩溃跟踪的故事
小萌和极光结缘很久了,大概3年多了吧,记得刚接触极光的时候是App应用需要植入推送业务,那个时候小萌还没有毕业,而且每次小萌面试的时候都会被问到推送的原理,但是每次小萌都信心满满,因为为啥呢,因为小萌有极光呀。
小萌除了使用极光的推送,还使用极光的数据统计,分析报告,以及跟踪BUG崩溃,现在极光的业务变得越来越稳定,功能也越来越多。
一:极光推送
小萌首先接触到的业务就是极光的推送,也入过不少的坑。
1、推送的原理
在植入应用App之前,我们需要了解推送的原理,知道了原理植入极光推送也就很容易了,👇的解释大家一定要好好的领会,看懂了这些那么推送也就变得很简单了,每次小萌面试的时候脑海里都会想起👇的2张图仔细叙述。
- 第一张苹果官方对其推送做出解释的概要图。
Provider是给你手机应用发出推送消息的服务器,而APNS(Apple Push Notification Service)则是苹果消息推送服务器。你本地的服务器当需要给应用推送一条消息的时候,先要将消息发出到苹果推送服务器,然后再由苹果推送服务器将消息发到安装了该应用的手机。
- 第二张解释图:
根据上图的逻辑我来给大家解释一下:
1.你的IOS应用需要去注册APNS消息推送功能。
2.当苹果APNS推送服务器收到来自你应用的注册消息就会返回一串device token给你(很重要)。
3.将应用收到的device Token传给你本地的Push服务器。
4.当你需要为应用推送消息的时候,你本地的推送服务器会将消息,以及Device Token打包发送到苹果的APNS服务器。
5.APNS再将消息推送给目的iphone。
2、接入极光推送
极光推送的介绍以及接入文档
iOS极光推送官方文档
介绍的特别详细,小萌就不多赘述了,小萌主要叙述一下踩过的坑和需要⚠️的地方,希望大家在阅读文档的时候一定要仔细,再三阅读,时间长了也许你会发现,作为一个开发工程师,了解业务以及原理比写代码更主要 。
- 1、设置搜索路径下的用户头搜索路径和库搜索路径,比如SDK文件夹(默认为lib)与工程文件在同一级目录下,则都设置为“$(SRCROOT)/ {静态库所在文件夹名称} “即可。
这个非常主要,因为路径不正确,是接受不到推送,而且还会报错
-
2、⚠️自己的业务需求,是推送系统消息还是自定义消息,系统消息是在屏幕上面显示的消息,自定义消息就不在屏幕上面显示了。系统消息在极光推送后台测试即可,自定义消息是需要后台开发者配合调试的。
-
3、开发的业务需求很大一部分都要求我们推送给某一部分人,所以需要设置别名alias,但是设置的别名一定要在kJPFNetworkDidLoginNotification之后,小萌就吃过这样的亏。
9d243b6e3cc48188a3437dd56b0654be74372c24_1_689x286.png -
4、封装,在开发的过程中封装也是很主要的一环,能减少代码的臃肿,提高代码质量,奉上小萌的封装推送代码。 极光推送封装(页面跳转,设置角标,设置别名)
这些问题只是其中的一部分,我们需要解决的问题还有很多,当我们遇到问题无法解决的时候,可以添加极光推送的技术支持,请求他们的协助,服务态度非常好,也能很快解决。极光推送需要注意的地方,这个连接是极光推送官方整理的可能会遇到的问题。
二:BUG崩溃统计
我们的应用App发布了,但是并不代表可以高枕无忧啦,我们还想实时了解我们我的App应用的BUG跟踪,即时修复BUG,之前小萌用的是腾讯的Bugly统计,但是应用App的大小又增加了几兆,在看到极光这里也有崩溃统计的时候,小萌果断使用极光的,因为可以节省好几兆呢,接入方法也特别简单,一句话。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
//崩溃统计
[JPUSHService crashLogON];
}
是不是很简单呢?
三:分析数据
image.png小萌经常来这里观察自己开发的App使用情况,看到自己开发的App使用量不断的上升,开心一大把呀,有些小得意。。。。。
总结
在使用极光推送的过程中遇到了不少的问题,但是不管用什么方法,已经解决,推送,跟踪,分析稳稳的,发现了解业务真的很主要的,每个程序员都应该有产品的思维,这样我们才能开发出受用户欢迎的App,对我们本身的成长也特别主要。
本文为极光征文参赛文章