Click here for an English introductionhtml
LLDebugTool是一款針對開發者和測試者的調試工具,它能夠幫助你在非Xcode的狀況下,進行數據分析和操做。ios
LLDebugToolSwift是針對LLDebugTool的Swift擴展,它提供了LLDebugTool的Swift接口,LLDebugToolSwift會和LLDebugTool同步更新。git
若是你的項目是一個Objective-C項目,你可使用LLDebugTool
,若是你的項目是一個Swift項目或者包含Swift文件,你可使用LLDebugToolSwift
。github
爲您的下一個項目選擇LLDebugTool,或者遷移到您現有的項目中——您會爲此感到驚喜!🎊🎊🎊網絡
Html
功能。你能夠在你的app中隨時調試經過 WKWebView
,UIWebView
或者你自定義的ViewController
來調試html頁面。app
LLURLProtocol
能夠正確的監聽 WKWebView
。CocoaPods 是集成LLDebugTool
的首選方式。框架
- 添加
pod 'LLDebugTool' , '~> 1.0.0'
到你的Podfile裏。- 若是隻想在Debug模式下使用,則添加
pod 'LLDebugTool' , '~> 1.0.0' ,:configurations => ['Debug']
到你的Podfile裏,詳細的配置方式能夠查看Wiki/如何僅在Debug環境中使用。若是你想要指定某個版本,能夠相似這樣使用pod 'LLDebugTool' , '1.3.3' ,:configurations => ['Debug']
。- 推薦的方式是採用多Target來處理,只在Debug Target中添加
pod 'LLDebugTool' , '~> 1.0.0'
,這樣作的好處既不污染Product環境的代碼,又能夠在Archive Debug環境的App時,將LLDebugTool
集成進去(若是採用:configurations => ['Debug']
的方式,只能經過XCode運行,不能夠Archive成App)。- 終端輸入
pod install
來進行集成。搜索不到LLDebugTool
或者搜不到最新版本時,可先運行pod repo update
,再執行pod install
。- 在你須要使用LLDebugTool的文件裏添加
#import "LLDebug.h"
,或者直接在pch文件中添加#import "LLDebug.h"
。
- 添加
pod 'LLDebugToolSwift' , '~> 1.0.0'
到你的Podfile裏。- 若是隻想在Debug模式下使用,則添加
pod 'LLDebugToolSwift' , '~> 1.0.0' ,:configurations => ['Debug']
到你的Podfile裏,詳細的配置方式能夠查看Wiki/如何僅在Debug環境中使用。若是你想要指定某個版本,能夠相似這樣使用pod 'LLDebugToolSwift' , '1.3.3' ,:configurations => ['Debug']
。- 推薦的方式是採用多Target來處理,只在Debug Target中添加
pod 'LLDebugToolSwift' , '~> 1.0.0'
,這樣作的好處既不污染Product環境的代碼,又能夠在Archive Debug環境的App時,將LLDebugToolSwift
集成進去(若是採用:configurations => ['Debug']
的方式,只能經過XCode運行,不能夠Archive成App)。- 必須在Podfile中添加
use_frameworks!
。- 終端輸入
pod install
來進行集成。搜索不到LLDebugToolSwift
或者搜不到最新版本時,可先運行pod repo update
,再執行pod install
。- 在你須要使用LLDebugTool的文件裏添加
import LLDebugToolSwift
。
Carthage 是一個分散的依賴管理器,它構建您的依賴併爲您提供framework框架。svg
- 要使用Carthage將LLDebugTool集成到Xcode項目中,請在
Cartfile
中指定它:
github "LLDebugTool"
工具- 運行
carthage
來構建框架,並將構建的LLDebugTool.framework
拖到Xcode項目中。
- 要使用Carthage將LLDebugToolSwift集成到Xcode項目中,請在
Cartfile
中指定它:
github "LLDebugToolSwift"
測試- 運行
carthage
來構建框架,並將構建的LLDebugToolSwift.framework
拖到Xcode項目中。
您能夠直接將名爲LLDebugTool文件夾的源文件添加到項目中。
- 下載最新的代碼版本或將存儲庫做爲git子模塊添加到您的git跟蹤項目中。
- 在Xcode中打開項目,而後拖拽名爲「LLDebugTool」的源文件夾到你的項目中。當提示Choose options for adding these files時,務必勾選Copy items if needed這項。
- 集成FMDB到項目中,FMDB是一個圍繞SQLite的Objective-C包裝器開源庫。
- 集成Masonry到項目中,Masonry是一個約束庫。
- 在你須要使用LLDebugTool的文件裏添加
#import "LLDebug.h"
,或者直接在pch文件中添加#import "LLDebug.h"
。
- 下載最新的Objective-C代碼版本或將存儲庫做爲git子模塊添加到您的git跟蹤項目中。
- 下載最新的Swift擴展代碼版本或將存儲庫做爲git子模塊添加到您的git跟蹤項目中。
- 在Xcode中打開項目,而後拖拽名爲「LLDebugTool」和「LLDebugToolSwift」的源文件夾到你的項目中。當提示Choose options for adding these files時,務必勾選Copy items if needed這項。
- 集成FMDB到項目中,FMDB是一個圍繞SQLite的Objective-C包裝器開源庫。
- 集成Masonry到項目中,Masonry是一個約束庫。
- 在你須要使用LLDebugTool的文件裏添加
import LLDebugToolSwift
。
你須要在"application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions"中啓動LLDebugTool,不然你可能會丟掉某些信息。
若是你想自定義一些參數,你須要在調用"startWorking"前配置這些參數。更詳細的配置信息請看LLConfig.h。
快速啓動
In Objective-C
#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; }
In Swift
import LLDebugToolSwift func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // ####################### Start LLDebugTool #######################// // Use this line to start working. LLDebugTool.shared().startWorking() // Write your project code here. return true }
使用自定義的配置啓動
In Objective-C
#import "AppDelegate.h" #import "LLDebug.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Start working with config. [[LLDebugTool sharedTool] startWorkingWithConfigBlock:^(LLConfig * _Nonnull config) { //####################### Color Style #######################// // Uncomment one of the following lines to change the color configuration. // config.colorStyle = LLConfigColorStyleSystem; // [config configBackgroundColor:[UIColor orangeColor] primaryColor:[UIColor whiteColor] statusBarStyle:UIStatusBarStyleDefault]; //####################### User Identity #######################// // Use this line to tag user. More config please see "LLConfig.h". config.userIdentity = @"Miss L"; //####################### Window Style #######################// // Uncomment one of the following lines to change the window style. // config.entryWindowStyle = LLConfigEntryWindowStyleNetBar; }]; return YES; }
In Swift
import LLDebugToolSwift func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Start working with config. LLDebugTool.shared().startWorking { (config) in //####################### Color Style #######################// // Uncomment one of the following lines to change the color configuration. // config.colorStyle = .system // config.configBackgroundColor(.orange, textColor: .white, statusBarStyle: .default) //####################### User Identity #######################// // Use this line to tag user. More config please see "LLConfig.h". config.userIdentity = "Miss L"; //####################### Window Style #######################// // Uncomment one of the following lines to change the window style. // config.windowStyle = .netBar //####################### Features #######################// // Uncomment this line to change the available features. // config.availables = .noneAppInfo } return true }
你不須要作任何操做,只須要調用了"startWorking"就能夠監控大部分的網絡請求,包括使用NSURLSession,NSURLConnection和AFNetworking。若是你發現某些狀況下沒法監控網絡請求,請打開一個issue來告訴我。
打印和保存一個日誌。 更多的log宏信息查看LLDebugToolMacros.h。
保存日誌
In Objective-C
#import "LLDebug.h" - (void)testNormalLog { // Insert an LLog where you want to print. LLog(@"Message you want to save or print."); }
In Swift
import LLDebugToolSwift func testNormalLog() { // Insert an LLog where you want to print. LLog.log(message: "Message you want to save or print.") }
Save Log with event and level
In Objective-C
#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."); }
In Swift
import LLDebugToolSwift func testEventErrorLog() { // Insert an LLog_Error_Event where you want to print an event and level log. LLog.errorLog(message: "Message you want to save or print.", event: "The event that you want to mark. such as bugA, taskB or processC.") }
你不須要作任何操做,只須要調用"startWorking"就能夠截獲崩潰,保存崩潰信息、緣由和堆棧信息,而且也會同時保存當次網絡請求和日誌信息。
LLDebugTool會監控app的CPU,內存和FPS。你能夠更便捷的查看app的各類信息。
LLDebugTool提供了一個快捷的方式來查看和操做沙盒文件,你能夠更輕鬆的刪除沙盒中的文件/文件夾,或者經過airdrop來分享文件/文件夾。只要是apple支持的文件格式,你能夠直接經過LLDebugTool來預覽。
LLDebugTool提供了一個截屏功能,而且能夠進行簡單的繪畫和標註,用於測試或者美工調試App時方便記錄。
LLDebugTool提供了一個視圖結構工具,用於在非Debug模式下查看元素的屬性和信息。
LLDebugTool提供了一個放大鏡的工具,用於放大局部UI和查看指定位置的顏色值。
LLDebugTool提供了一個格尺工具,用於便捷的獲取和對比位置信息。
LLDebugTool提供了一個元素邊框工具,便捷的查看元素邊框及位置。
LLDebugTool能夠在你的app中隨時調試經過 WKWebView
,UIWebView
或者你自定義的ViewController
來調試html頁面。
LLDebugTool在支持ios8+,而且須要使用ARC模式。使用到的框架已經包含在大多數Xcode模板中:
UIKit
Foundation
SystemConfiguration
Photos
QuickLook
CoreTelephony
LLDebug.h
公用頭文件。全局引用此文件便可。
DebugTool
LLDebugTool.h
用於啓動和中止LLDebugTool,你須要看一下這個文件。
LLConfig.h
用於自定義顏色、大小、標識和其餘信息。若是您想要配置任何東西,您須要關注這個文件。
LLDebugToolMacros.h
快捷的宏定義文件。
Component
Network
用於監視網絡請求。Log
快速打印和保存日誌。Crash
用於當App發生崩潰時,收集崩潰信息。AppInfo
用於監視應用程序的各類屬性。Sandbox
用於查看和操做沙盒文件。Screenshot
用於處理和展現截屏事件。Hierarchy
用於處理和展現視圖結構。Magnifier
用於放大鏡功能。Ruler
用於格尺功能。Widget Border
用於元素邊框功能。Function
用於展現功能列表。Setting
用於動態修改配置。能夠在 CHANGELOG 中找到每一個LLDebugTool版本的簡要總結。
這段代碼是根據 MIT license 的條款和條件發佈的。