您的位置:首页 > 移动开发 > IOS开发

iOS项目异常捕捉提示及处理方案。

2016-07-27 16:01 525 查看

iOS 异常捕捉、说明。

在项目调试过程中,经常会遇到闪退,怎么比较友好的收集这些错误、异常信息呢? 看了网上的许多处理方式,其实大概意思都差不多,可以本地存储异常日志,待合适时候再发送,也可以通过邮件的形式,将异常发给开发者。
这篇文章将会把一些接口统一一下,并提供 断言, 错误的具体位置(类名及行数)、所有异常报告内容、及异常报告文件路径接口。 并统一展示 异常日志 。

使用说明 :



第一步 :将Demo中的 UncaughtExceptionHandler 文件夹及其中的文件直接拖入到项目当中, 并将 #import "DKDebug.h"  和 #import "WBUncaughtExceptionHandler.h" 导入到项目的 pch 文件中 即可。

第二步 :在 WBUncaughtExceptionHandler.h  中,配置 SENT_TO_MAIL 宏字符串,这是你要接收异常日志的邮箱。

说明: 之后项目出现闪退异常,会弹出提示框,并且将所有的异常错误日志写入缓存文件中,用户选择发送给开发者,可以将当前的异常信息发送邮件给开发者。  如果要获取所有的异常日志,也有提供所有异常信息字符串,及异常文件的路径,后面会再说明。

关键类、接口、属性说明 :

 WBUncaughtExceptionHandler.h 中 。

//
//  WBUncaughtExceptionHandler.h
//  ExceptionHandler
//
//  Created by YuTianLong on 16/7/27.
//  Copyright © 2016年 http://blog.csdn.net/yutianlong9306/. All rights reserved.
//

#import <Foundation/Foundation.h>

#define SENT_TO_MAIL                            (@"ReceiveMail@gmail.com")         //配置接收异常邮件的邮箱号
#define GetUncaughtExceptionHandler()           ([WBUncaughtExceptionHandler sharedInstance])

@interface WBUncaughtExceptionHandler : NSObject {
BOOL isExit;
}

@property (nonatomic, copy) NSString *wrongLocation;            //断言产生的错误的具体位置,类名,行数
@property (nonatomic, readonly) NSString *allExceptionReport;   //读取所有异常报告
@property (nonatomic, readonly) NSString *logFileUrl;           //获取错误日志文件本地路径

+ (instancetype)sharedInstance;

@end

/**
*  AppDelegate 调用安装异常监测
*/
void InstallUncaughtExceptionHandler(void);


SENT_TO_MAIL
//配置接收异常信息的邮箱帐户。

isExit //判断项目是否退出,默认NO。

wrongLocation
//如果是否断言DKAssert产生的异常,则该属性就不为空。(记录类名及第几行错误)

allExceptionReport//读取异常日志文件中的所有异常信息。(可用户读取异常信息 发送后台)

logFileUrl
//异常日志文件 的路径。(可用于统一展示异常文件,读取路径,文件类型.TXT)

InstallUncaughtExceptionHandler()
//在 didFinishLaunchingWithOptions 中调用。

注意 :  使用断言DKAssert调试的话,用真机调试。

Demo 效果:



Demo 下载地址 :

http://download.csdn.net/detail/yutianlong9306/9587834
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息