一种用于收集iOS系统中应用崩溃信息的方法及系统与流程

文档序号:11475645阅读:153来源:国知局

本发明涉及互联网移动端应用开发领域,具体涉及一种用于收集ios系统中应用崩溃信息的方法和一种用于收集ios系统中应用崩溃信息的系统。



背景技术:

随着科技的飞速发展,智能移动设备的功能越发强大,通过在移动智能设备中安装各种类型应用满足日常生产生活需求,且应用均由程序员开发完成,程序员在应用的实际开发过程中,受思维局限等因素的影响,无法预知应用在实际运行中可能出现的状况,使得开发出的应用或多或少会存在一些代码错误或异常,从而导致应用在运行过程中崩溃现象的出现。

应用运行时的崩溃极大地影响了用户的使用体验,同时应用在崩溃时会产生崩溃信息以及崩溃原因,应用的崩溃信息对于应用的后续改进起着至关重要的作用,若无法及时的对崩溃信息进行收集以便为应用的改进提供参考,开发人员在改进应用时将不得不检查应用的所有运行代码,从而极大地增加应用开发人员工作量。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种用于收集ios系统中应用崩溃信息的方法和一种用于收集ios系统中应用崩溃信息的系统,方便快捷的对应用的崩溃信息进行收集。

为达到以上目的,本发明采取的技术方案是,包括:

s1:添加崩溃信息收集文件至应用中;

s2:在应用的启动函数内注册崩溃信息收集命令;

s3:当应用崩溃时,通过崩溃信息收集命令获取崩溃信息收集文件收集的应用的崩溃信息,并将获取的崩溃信息保存,同时使用对象函数获取应用崩溃的原因字符串和设备信息;

s4:将崩溃信息、应用崩溃的原因字符串和设备信息进行拼接;

s5:当应用再次启动时,将拼接后的崩溃信息、崩溃的原因字符串和设备信息发送至后台服务器。

在上述技术方案的基础上,所述崩溃信息收集文件为uncaughtexceptionhandler。

在上述技术方案的基础上,所述uncaughtexceptionhandler包括uncaughtexceptionhandler.h和uncaughtexceptionhandler.m,所述uncaughtexceptionhandler.h和uncaughtexceptionhandler.m均为收集应用崩溃信息的类文件。

在上述技术方案的基础上,s3中,获取的崩溃信息通过函数validateandsavecriticalapplicationdata进行保存。

在上述技术方案的基础上,s3中,应用崩溃的原因字符串通过对象函数[exceptionreason]获取,所述设备信息通过对象函数[exceptionuserinfo]获取。

在上述技术方案的基础上,s5中,拼接后的崩溃信息、崩溃的原因字符串和设备信息以邮件形式发送至后台。

在上述技术方案的基础上,拼接后的崩溃信息、崩溃的原因字符串和设备信息发送给后台的具体步骤为:

s501:在应用中导入信息发送功能框架framework;

s502:判断运行应用的设备是否设置邮件账户,若已设置,则转到s503,若未设置,则下次应用启动时,提示用户设置邮件账户,然后转到s503;

s503:设置邮件的收件邮箱,在邮件的内容中导入拼接后的崩溃信息、崩溃的原因字符串和设备信息;

s504:发送邮件,获知邮件发送结果,关闭邮件发送视图,所述邮件发送结果为成功或失败。

本发明还公开了一种用于收集ios系统中应用崩溃信息的系统,包括:

初始化模块,其用于初始化应用,并在应用中添加崩溃信息收集文件,以及在应用的启动函数内注册崩溃信息收集命令;

收集模块,其用于当应用崩溃后,通过崩溃信息收集命令获取崩溃信息收集文件收集的应用的崩溃信息,以及应用崩溃的原因字符串和运行应用的设备的设备信息;

发送模块,其用于将收集模块收集的手机应用的崩溃信息、应用崩溃的原因字符串和运行应用的设备的设备信息进行拼接并发送至后台服务器或开发人员。

在上述技术方案的基础上,所述手机应用的崩溃信息、应用崩溃的原因字符串和运行应用的设备的设备信息以邮件形式发送至开发人员。

在上述技术方案的基础上,所述崩溃信息收集文件为uncaughtexceptionhandler,uncaughtexceptionhandler包括uncaughtexceptionhandler.h和uncaughtexceptionhandler.m,所述uncaughtexceptionhandler.h和uncaughtexceptionhandler.m均为收集应用崩溃信息的类文件。

与现有技术相比,本发明一种用于收集ios系统中应用崩溃信息的方法的优点在于:通过在应用中添加崩溃信息收集文件,同时在应用的启动函数内注册崩溃信息收集命令,当应用崩溃时,通过崩溃信息收集命令,崩溃信息收集文件进行应用的崩溃信息的收集,仅在应用的启动函数注册崩溃信息收集命令,进行崩溃信息的传递,因此整个收集方法的适用性更加广泛,有效提高了崩溃信息收集的灵活性。同时,将崩溃信息发送给开发人员,方便开发人员针对问题点,对应用进行改进,大大提高了开发人员的工作效率,降低了开发人员的工作强度。

本发明一种用于收集ios系统中应用崩溃信息的系统的优点在于:通过初始化模块在应用中添加崩溃信息收集文件,同时在应用的启动函数内注册崩溃信息收集命令,当应用发生崩溃时,即可进行崩溃信息的收集,且仅在应用的启动函数中添加崩溃信息收集命令,即可完成崩溃信息的收集,适用性广,极大地提高了崩溃信息收集的灵活性。

附图说明

图1为本发明一种用于收集ios系统中应用崩溃信息的方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种用于收集ios系统中应用崩溃信息的方法,具体包括:

s1:添加崩溃信息收集文件至应用中。崩溃信息收集文件为uncaughtexceptionhandler,uncaughtexceptionhandler为一常见的崩溃信息收集文件,且其中含有捕获应用异常的函数,uncaughtexceptionhandler包括uncaughtexceptionhandler.h和uncaughtexceptionhandler.m,uncaughtexceptionhandler.h和uncaughtexceptionhandler.m均为收集应用崩溃信息的类文件,通过uncaughtexceptionhandler.h和uncaughtexceptionhandler.m文件,达到简单而快捷的收集崩溃信息的目的。

s2:在应用的启动函数内注册崩溃信息收集命令。应用的启动函数为-(bool)application:(uiapplication*)applicationdidfinishlaunchingwithoptions:(nsdictionary*)launchoptions,该函数为应用启动时必须要调用的函数,其中,参数application即指当前运行的应用,应用在运行的过程中,很多功能会调用该函数,因此在该函数中注册崩溃信息收集命令,从而崩溃信息收集文件uncaughtexceptionhandler便能够在该函数中获取应用的崩溃信息,即仅在该注册获取信息的handler,handler用于异步消息的处理和传递。崩溃信息收集命令通过函数installuncaughtexceptionhandler()进行注册,函数installuncaughtexceptionhandler()为c语言函数,没有输入参数。

s3:当应用崩溃时,通过崩溃信息收集命令获取崩溃信息收集文件uncaughtexceptionhandler收集的应用的崩溃信息,并将获取的崩溃信息保存,同时使用对象函数获取应用崩溃的原因字符串,以及运行应用的设备的设备信息。

崩溃信息收集命令获取崩溃信息收集文件uncaughtexceptionhandler收集的应用的崩溃信息,该过程通过函数-(void)handleexception:(nsexception*)exception函数进行,应用的崩溃信息包括异常堆栈等异常信息。

获取的崩溃信息通过函数validateandsavecriticalapplicationdata进行保存,validateandsavecriticalapplicationdata是一个主要用来保存崩溃信息的函数。应用崩溃的原因字符串通过对象函数[exceptionreason]获取,运行应用的设备的设备信息通过对象函数[exceptionuserinfo]获取,设备信息包括设备信号及使用该设备的用户等信息。

s4:将崩溃信息、应用崩溃的原因字符串和设备信息进行拼接。拼接使用函数[nsstringstringwithformat:@"%@%@",[exceptionreason],[exceptionuserinfo]进行,其中,[exceptionreason]即为应用崩溃的原因字符串,[exceptionuserinfo]即为设备信息。

同时,还可以将拼接的崩溃信息、应用崩溃的原因字符串和设备信息保存于设备本地,方便设备连接编译器时,编译器获取设备内的应用的崩溃信息。本发明实施例中的设备为运行ios系统的智能移动设备,应用运行于安装ios系统的智能移动设备中。

s5:当应用再次启动时,将拼接后的崩溃信息、崩溃的原因字符串和设备信息发送至后台服务器或后台的开发人员,具体的,拼接后的崩溃信息、崩溃的原因字符串和设备信息可以以邮件形式发送至后台,如以邮件的形式发送给后台的开发人员,拼接后的崩溃信息、崩溃的原因字符串和设备信息发送给后台的具体步骤为:

s501:在应用中导入信息发送功能框架framework,因为根据oc语言的特性,当需要使用某一功能时,需要导入相关功能的系统自带框架,信息发送功能框架framework具体为messageui.framework,messageui.framework。

在崩溃信息收集文件uncaughtexceptionhandler还需导入函数#import<messageui/messageui.h>,<messageui/messageui.h>,函数#import<messageui/messageui.h>,<messageui/messageui.h>是与发送短信息相关的头文件。同时崩溃信息收集文件uncaughtexceptionhandler还需遵从dymailcomposeviewcontrollerdelegate,dymailcomposeviewcontrollerdelegate协议,dymailcomposeviewcontrollerdelegate,dymailcomposeviewcontrollerdelegate协议为发送短信、邮件等消息时需要遵从的代理协议,只要遵从了该代理协议,才能接收邮件发送结果的回馈。

s502:判断运行应用的设备是否设置邮件账户,若已设置,则转到s503,若未设置,则下次应用启动时,提示用户设置邮件账户,然后转到s503;

是否设置邮件账户通过函数[dymailcomposeviewcontrollercansendmail]判断,其中,cansendmail是发送邮件中用于判断能否发送邮件的函数。

s503:设置邮件的收件邮箱,在邮件的内容中导入拼接后的崩溃信息、崩溃的原因字符串和设备信息,同时使用函数[mailsetmailcomposedelegate:self]设置邮件的代理为当前发送邮件的控制器,self代表发送邮件所在的当前控制器。收件邮箱为后台开发人员的邮箱,进一步的,还可以设置邮件抄送人邮箱、邮件密送人邮箱和邮件主题。

收件邮箱通过函数[mailsettorecipients:@[@"xxxxxx"]];settorecipients进行设置,其中,@[@"xxxxxx"]为一数组,xxxxxx代表收件人的邮箱地址。使用函数[mailsetccrecipients:@[@"aaaaaa"]]设置抄送人邮箱,其中aaaaaa代表抄送人的邮箱地址。使用函数[mailsetbccrecipients:@[@"bbbbbb"]];设置邮件密送人邮箱,其中bbbbbb为密送人的邮箱地址。使用函数[mailsetsubject:@"cccccc"];设置邮件主题,其中cccccc为邮件的主题内容。邮件的内容通过函数[mailsetmessagebody:emailcontentishtml:no];设置,其中emailcontent代表邮件内容,即导入的拼接后的崩溃信息、崩溃的原因字符串和设备信息。

s504:发送邮件,获知邮件发送结果,关闭邮件发送视图,邮件发送结果为成功或失败。

邮件的发送结果通过函数-(void)mailcomposecontroller:(dymailcomposeviewcontroller*)controllerdidfinishwithresult:(mfmailcomposeresult)resulterror:(nserror*)error获取,该函数的返回值为void,且该函数中有3个参数,参数controller代表即将弹出的发送邮件内容的控制器,参数result代表发送邮件的结果,参数error表示该函数为nserror类型。邮件发送视图的关闭通过函数[_curvcdismissviewcontrolleranimated:yescompletion:nil];关闭,该函数中的参数yes代表销毁发送邮件的页面需要的动画效果,参数nil代表邮件发送完之后无需再执行任何操作。

本发明实施例中用于收集ios系统中应用崩溃信息的方法:通过在应用中添加崩溃信息收集文件,同时在应用的启动函数内注册崩溃信息收集命令,当应用崩溃时,通过崩溃信息收集命令,崩溃信息收集文件进行应用的崩溃信息的收集,仅在应用的启动函数注册崩溃信息收集命令,进行崩溃信息的传递,因此整个收集方法的适用性更加广泛,有效提高了崩溃信息收集的灵活性。同时,将崩溃信息发送给开发人员,方便开发人员针对问题点,对应用进行改进,大大提高了开发人员的工作效率,降低了开发人员的工作强度。

本发明实施例还提供一种基于上述用于收集ios系统中应用崩溃信息的方法的用于收集ios系统中应用崩溃信息的系统,包括初始化模块、收集模块和发送模块。

初始化模块用于初始化应用,并在应用中添加崩溃信息收集文件,以及在应用的启动函数内注册崩溃信息收集命令;收集模块用于当应用崩溃后,通过崩溃信息收集命令获取崩溃信息收集文件收集的应用的崩溃信息,以及应用崩溃的原因字符串和运行应用的设备的设备信息;发送模块用于将收集模块收集的手机应用的崩溃信息、应用崩溃的原因字符串和运行应用的设备的设备信息进行拼接并发送至后台服务器或开发人员。

崩溃信息收集文件为uncaughtexceptionhandler,uncaughtexceptionhandler包括uncaughtexceptionhandler.h和uncaughtexceptionhandler.m,uncaughtexceptionhandler.h和uncaughtexceptionhandler.m均为收集应用崩溃信息的类文件。手机应用的崩溃信息、应用崩溃的原因字符串和运行应用的设备的设备信息可以以邮件形式发送至开发人员。

本发明实施例中的用于收集ios系统中应用崩溃信息的系统:通过初始化模块在应用中添加崩溃信息收集文件,同时在应用的启动函数内注册崩溃信息收集命令,当应用发生崩溃时,即可进行崩溃信息的收集,且仅在应用的启动函数中添加崩溃信息收集命令,即可完成崩溃信息的收集,适用性广,极大地提高了崩溃信息收集的灵活性。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1