项目作者: yanxiaobing

项目描述 :
iOS Project Collect Crash Info And Api Info
高级语言: Objective-C
项目地址: git://github.com/yanxiaobing/XBDebugTools.git
创建时间: 2017-12-13T14:56:13Z
项目社区:https://github.com/yanxiaobing/XBDebugTools

开源协议:MIT License

下载


XBDebugTools

XBDebugTools目前主要是用于收集Crash信息和API接口相关信息。

日常工作中常常遇到领导、测试人员、以及用iPhone的同事拿着手机跑来反馈问题,除了一些UI的问题对于他们来说比较好描述,其他的问题通常被他们描述为:app挂了啦,奔溃了啦,没有数据啦,更进一步的描述他们基本就说不清,听完真是一脸懵逼,平时赶新功能的话,对于那些不能很快追踪或者重现的问题可能就被忽略了。虽然可以接入友盟等第三方崩溃日志检测工具,但是相关日志的提交的及时性不受自己的控制,对于领导等测试人员遇到并反馈问题,特别是领导,你不及时告诉他问题的原因还真不行。该工具可以帮你快速的定位这些问题,及时给相关人员反馈或者修复。

本工具会持续维护,如果有通用需求会尽快加入进去。

第一次制作开源工具库,难免有不足之处,还请大家不吝指教。

示例演示

img

安装方式

目前可以通过两种方式将XBDebugTools集成到您的项目中。

通过 CocoaPods 安装

CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like XBDebugTools in your projects. You can install it with the following command:

  1. $ gem install cocoapods

Podfile

To integrate XBDebugTools into your Xcode project using CocoaPods, specify it in your Podfile:

  1. source 'https://github.com/CocoaPods/Specs.git'
  2. platform :ios, '8.0'
  3. target 'TargetName' do
  4. pod 'XBDebugTools'
  5. end

Then, run the following command:

  1. $ pod install

工程结构

XBDebugTools

  • XBDebugTools

DebugInfoModel

  • XBApiDebugInfo
  • XBExceptionInfo

DebugView

  • XBDebugInfoListViewController
  • XBDebugDetailsViewController
  • XBDebugInfoListTableViewCell

Usage

XBDebugTools 包含了所有功能接口,目前主要包含Crash收集、添加API相关信息、展示这些Crash和Api信息的接口.

Crash信息收集

AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法1return前执行[XBDebugTools sharedInstance];即可。具体如下:

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  2. #if DEBUG
  3. [XBDebugTools sharedInstance]; //一定放在return前,紧贴return语句,否则可能被第三方收集工具重写相关方法导致收集不到Crash信息
  4. #endif
  5. return YES;
  6. }

API信息收集

在API集中处理的地方调用-(void)addApiDebugInfoWithDomain:(NSString *)domain url:(NSString *)url params:(NSDictionary *)params response:(NSDictionary *)response succeed:(BOOL)succeed方法,即[[XBDebugTools sharedInstance] addApiDebugInfoWithDomain:@"" url:URLString params:params response:dict succeed:YES];。现在使用AFNetworking 项目比较多,这里则用该库举例子了。具体如下:

  1. NSURLSessionConfiguration * configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
  2. AFURLSessionManager * sessionManager = [[AFURLSessionManager alloc ] initWithSessionConfiguration configuration];
  3. [sessionManager POST:URLString parameters:params progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  4. //解析字典
  5. NSData *data = [self unzipData:responseObject];
  6. NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
  7. #if DEBUG
  8. [[XBDebugTools sharedInstance] addApiDebugInfoWithDomain:@"" url:URLString params:params response:dict succeed:YES];
  9. #endif
  10. } failure:^(NSURLSessionDataTask *task, NSError *error) {
  11. #if DEBUG
  12. [[XBDebugTools sharedInstance] addApiDebugInfoWithDomain:@"" url:URLString params:params response:@{@"errorDes":error.localizedDescription} succeed:NO];
  13. #endif
  14. }];

展示收集的信息

在APP中提供一个展示收集的debug信息的入口,比如创建一个按钮,在响应方法中调用[[XBDebugTools sharedInstance] showExceptionTools];即可。

License

XBDebugTools is released under the MIT license. See LICENSE for details.