LLDebugTool - 組件化的調試工具

LLDebugTool - 組件化的調試工具

HDB-Li/LLDebugTool?

github.com圖標

LLDebugTool是一款針對開發者和測試者的調試工具,它可以幫助你在非Xcode的情況下,進行數據分析和操作。

為您的下一個項目選擇LLDebugTool,或者遷移到您現有的項目中——您會為此感到驚喜!

#### Gif

## 最近更新 (1.2.0)

### 支持組件化。

`LLDebugTool` 現在已經支持組件化了。現在你可以集成某一個或者多個模塊到你自己的**Debug 工具**里。你可以直接使用每個模塊內包含的視圖控制器,或者只調用`Function`文件夾下的功能,然後自己搭建UI。

如何使用組件化,具體請看Wiki[使用組件化](HDB-Li/LLDebugTool)或者[添加 LLDebugTool 到你的項目中](HDB-Li/LLDebugTool)。

更多的修改內容可以查看[Version 1.2.0 Project](HDB-Li/LLDebugTool)。

#### 新增

* 增加 `LLRoute`,用於解決組件間的相互引用。當相關組件存在時, `LLRoute` 會調用相關的方法,否則什麼都不會做。

#### 更新

* 更新文件夾目錄。現在整個項目是根據組件來分類的,在每個組件文件夾下,又分為`Function` 和 `UserInterface`。

* 修改組件間的相互引用的文件,改為由Route處理。

* 更新了 `NSURLSessionConfiguration.m` ,hook了 `protocolClasses` 這個方法。

## 我能用LLDebugTool做什麼?

- 檢查網路請求或者查看某些事件的日誌信息,而不必非在XCode運行下運行。這在解決測試人員的問題上很有用。

- 更輕鬆的篩選有用的信息。

- 更輕鬆的處理偶發的問題。

- 更輕鬆的分析崩潰原因。

- 更輕鬆的分享、預覽或刪除沙盒文件,這在開發階段非常有用。

- 更輕鬆的觀察App的CPU,內存,FPS等信息。

## 添加 LLDebugTool 到你的項目中

### CocoaPods

[CocoaPods](cocoapods.org) 是集成`LLDebugTool`的首選方式。

1. 添加 `pod LLDebugTool` 到你的Podfile里。如果只想在Debug模式下使用,則添加`pod LLDebugTool ,:configurations => [Debug]` 到你的Podfile里,詳細的配置方式可以查看[Wiki/如何僅在Debug環境中使用](github.com/HDB-Li/LLDeb如何僅在Debug環境中使用)。

2. 終端輸入`pod install`來進行集成。搜索不到`LLDebugTool`時,可先運行`pod repo update`,再執行`pod install`。

3. 在你需要使用LLDebugTool的文件里添加`#import "LLDebug.h"`,或者直接在pch文件中添加`#import "LLDebug.h"`。

### Carthage

[Carthage](Carthage/Carthage) 是一個分散的依賴管理器,它構建您的依賴並為您提供framework框架。

1. 要使用Carthage將LLDebugTool集成到Xcode項目中,請在「Cartfile」中加入這行:

```ogdl

github "LLDebugTool"

```

2. 運行 `carthage` 來構建框架,並將構建的「LLDebugTool.framework」拖到Xcode項目中。

### 源文件

您可以直接將名為LLDebugTool文件夾的源文件添加到項目中。

1. 下載[最新的代碼版本](github.com/HDB-Li/LLDeb)或將存儲庫作為git子模塊添加到您的git跟蹤項目中。

2. 在Xcode中打開項目,然後拖拽名為「LLDebugTool」的源文件夾到你的項目中。當提示Choose options for adding these files時,務必勾選Copy items if needed這項。

3. 集成[FMDB](github.com/ccgus/fmdb)到項目中,FMDB是一個圍繞SQLite的Objective-C包裝器開源庫。

4. 在你需要使用LLDebugTool的文件里添加`#import "LLDebug.h"`,或者直接在pch文件中添加`#import "LLDebug.h"`。

## 如何使用

### 啟動

你需要在"application:(UIApplication * )application didFinishLaunchingWithOptions:(NSDictionary * )launchOptions"中啟動LLDebugTool,否則你可能會丟掉某些信息。

如果你想自定義一些參數,你需要在調用"startWorking"前配置這些參數。更詳細的配置信息請看[LLConfig.h](github.com/HDB-Li/LLDeb)。

* `快速啟動`

#import "AppDelegate.h"#import "LLDebug.h"- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // The default color configuration is green background and white text color. // Start working. [[LLDebugTool sharedTool] startWorking]; // Write your project code here. return YES;}

* `使用自定義的配置啟動`

#import "AppDelegate.h"#import "LLDebug.h"- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // The default color configuration is LLConfigColorStyleHack. // If you want to use other color configurations, you can use the following line. [LLConfig sharedConfig].colorStyle = LLConfigColorStyleSimple; // If you want to use a custom color configuration, you can use the following line. [[LLConfig sharedConfig] configBackgroundColor:[UIColor orangeColor] textColor:[UIColor whiteColor] statusBarStyle:UIStatusBarStyleDefault]; // If you dont want to use color configuration, you can use the following line. [LLConfig sharedConfig].useSystemColor = YES; // Start working. [[LLDebugTool sharedTool] startWorking]; // Write your project code here. return YES;}

### 日誌

列印和保存一個日誌。 更多的log宏信息查看[LLLogHelper.h](github.com/HDB-Li/LLDeb)。

* `保存日誌`

#import "LLDebug.h"- (void)testNormalLog { // Insert an LLog where you want to print. LLog(@"Message you want to save or print.");}

* `Save Log with event and level`

#import "LLDebug.h"- (void)testEventErrorLog { // Insert an LLog_Error_Event where you want to print an event and level log. LLog_Error_Event(@"The event that you want to mark. such as bugA, taskB or processC.",@"Message you want to save or print.");}

### 網路請求

你不需要做任何操作,只需要調用了"startWorking"就可以監控大部分的網路請求,包括使用NSURLSession,NSURLConnection和AFNetworking。如果你發現某些情況下無法監控網路請求,請打開一個issue來告訴我。

### 崩潰

你不需要做任何操作,只需要調用"startWorking"就可以截獲崩潰,保存崩潰信息、原因和堆棧信息,並且也會同時保存當次網路請求和日誌信息。

### App信息

LLDebugTool會監控app的CPU,內存和FPS。你可以更便捷的查看app的各種信息。

### 沙盒

LLDebugTool提供了一個快捷的方式來查看和操作沙盒文件,你可以更輕鬆的刪除沙盒中的文件/文件夾,或者通過airdrop來分享文件/文件夾。只要是apple支持的文件格式,你可以直接通過LLDebugTool來預覽。

### 更多使用

* 你可以通過查看[Wiki](github.com/HDB-Li/LLDeb),獲得更多幫助。

* 你可以下載並運行[LLDebugToolDemo](github.com/HDB-Li/LLDeb)來發現LLDebugTool的更多使用方式。Demo是在XCode9.3,ios 11.3,cocoapods 1.5.0下運行的,如果有任何版本兼容問題,請告訴我。

## 要求

LLDebugTool在支持ios8+,並且需要使用ARC模式。使用到的框架已經包含在大多數Xcode模板中:

* `UIKit`

* `Foundation`

* `SystemConfiguration`

* `Photos`

* `malloc`

* `mach-o`

* `mach`

* `QuickLook`

* `objc`

* `sys`

## 結構

* `LLDebug.h` 公用頭文件.

* `LLConfig` 配置文件。

>用於自定義顏色、大小、標識和其他信息。如果您想要配置任何東西,您需要關注這個文件。

* `LLDebugTool` 工具文件。

>用於啟動和停止LLDebugTool,你需要看一下"LLDebugTool.h"這個文件。

* `Helper` 輔助文件。

>如果你對功能的實現原理不感興趣,那麼可以忽略這個文件夾。

- `LLAppHelper` 用於監視應用程序的各種屬性。

- `LLCrashHelper` 用於當App發生崩潰時,收集崩潰信息。

- `LLLogHelper` 快速列印和保存日誌。

- `LLNetworkHelper` 用於監視網路請求。

- `LLSandboxHelper` Sandbox Helper。用於查看和操作沙盒文件。

- `LLStorageManager` Storage Helper。用於數據存儲和讀取。

* `UserInterface` UI文件。

>如果你想要修改、查看或者學習UI方面的東西,你可以查看一下這個文件夾。

- `Base` 父類文件

- `Categories` 類擴展

- `Others` 不通用的控制項

- `Resources` 圖片資源

- `Sections` 視圖控制器

- `Tool` 工具

## 聯繫

- **如果你需要幫助**,打開一個issue。

- **如果你想問一個普遍的問題**,打開一個issue。

- **如果你發現了一個bug**,_並能提供可靠的複製步驟_,打開一個issue。

- **如果你有一個功能請求**,打開一個issue。

- **如果你發現有什麼不對或不喜歡的地方**,就打開一個issue。

- **如果你有一些好主意或者一些需求**,請發郵件(llworkinggroup@qq.com)給我。

- **如果你想貢獻**,提交一個pull request。

## 聯繫

- 可以在[簡書](jianshu.com/u/a3c82fae8)中發私信給我。

- 可以發郵件到[llworkinggroup@qq.com](llworkinggroup@qq.com)

## 更新日誌

可以在 [CHANGELOG](CHANGELOG.md) 中找到每個LLDebugTool版本的簡要總結。


推薦閱讀:

TAG:iOS | 軟體調試 | Xcode |