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调试的话,用真机调试。