LLDebugTool 是一款针对开发者和测试者的调试工具,它可以帮助你在非Xcode的情况下,进行数据分析和操作。
LLDebugToolSwift 是针对 LLDebugTool 的Swift扩展,它提供了LLDebugTool的Swift接口,LLDebugToolSwift会和LLDebugTool同步更新。
如果你的项目是一个Objective-C项目,你可以使用 LLDebugTool
,如果你的额项目是一个Swift项目或者包含Swift文件,你可以使用 LLDebugToolSwift
。
为您的下一个项目选择LLDebugTool,或者迁移到您现有的项目中——您会为此感到惊喜!
Gif
ScreenShots
最近更新 (1.2.0)
支持组件化。
LLDebugTool
现在已经支持组件化了。现在你可以集成某一个或者多个模块到你自己的 Debug 工具 里。你可以直接使用每个模块内包含的视图控制器,或者只调用 Function
文件夹下的功能,然后自己搭建UI。
如何使用组件化,具体请看Wiki 使用组件化 或者 添加 LLDebugTool 到你的项目中 。
更多的修改内容可以查看 Version 1.2.0 Project 。
新增
- 增加
LLRoute
,用于解决组件间的相互引用。当相关组件存在时,LLRoute
会调用相关的方法,否则什么都不会做。
更新
-
更新文件夹目录。现在整个项目是根据组件来分类的,在每个组件文件夹下,又分为
Function
和UserInterface
。 -
修改组件间的相互引用的文件,改为由Route处理。
-
更新了
NSURLSessionConfiguration.m
,hook了protocolClasses
这个方法。
我能用LLDebugTool做什么?
-
检查网络请求或者查看某些事件的日志信息,而不必非在XCode运行下运行。这在解决测试人员的问题上很有用。
-
更轻松的筛选有用的信息。
-
更轻松的处理偶发的问题。
-
更轻松的分析崩溃原因。
-
更轻松的分享、预览或删除沙盒文件,这在开发阶段非常有用。
-
更轻松的观察App的CPU,内存,FPS等信息。
添加 LLDebugTool 到你的项目中
CocoaPods
CocoaPods 是集成 LLDebugTool
的首选方式。
Objective - C
- 添加
pod 'LLDebugTool' , '~> 1.0.0'
到你的Podfile里。如果只想在Debug模式下使用,则添加pod 'LLDebugTool' , '~> 1.0.0' ,:configurations => ['Debug']
到你的Podfile里,详细的配置方式可以查看 Wiki/如何仅在Debug环境中使用 。如果你想要指定某个版本,可以类似这样使用pod 'LLDebugTool' , '1.1.7' ,:configurations => ['Debug']
。 - 终端输入
pod install
来进行集成。搜索不到LLDebugTool
或者搜不到最新版本时,可先运行pod repo update
,再执行pod install
。 - 在你需要使用LLDebugTool的文件里添加
#import "LLDebug.h"
,或者直接在pch文件中添加#import "LLDebug.h"
。
Swift
- 添加
pod 'LLDebugToolSwift' , '~> 1.0.0'
到你的Podfile里。如果只想在Debug模式下使用,则添加pod 'LLDebugToolSwift' , '~> 1.0.0' ,:configurations => ['Debug']
到你的Podfile里,详细的配置方式可以查看 Wiki/如何仅在Debug环境中使用 。如果你想要指定某个版本,可以类似这样使用pod 'LLDebugToolSwift' , '1.1.7' ,:configurations => ['Debug']
。 - 必须在Podfile中添加
use_frameworks!
。 - 终端输入
pod install
来进行集成。搜索不到LLDebugToolSwift
或者搜不到最新版本时,可先运行pod repo update
,再执行pod install
。 - 在你需要使用LLDebugTool的文件里添加
import LLDebugToolSwift
。
Carthage
Carthage 是一个分散的依赖管理器,它构建您的依赖并为您提供framework框架。
Objective - C
-
要使用Carthage将LLDebugTool集成到Xcode项目中,请在
Cartfile
中指定它:github "LLDebugTool"
-
运行
carthage
来构建框架,并将构建的LLDebugTool.framework
拖到Xcode项目中。
Swift
-
要使用Carthage将LLDebugToolSwift集成到Xcode项目中,请在
Cartfile
中指定它:github "LLDebugToolSwift"
-
运行
carthage
来构建框架,并将构建的LLDebugToolSwift.framework
拖到Xcode项目中。
源文件
您可以直接将名为LLDebugTool文件夹的源文件添加到项目中。
Objective - C
- 下载 最新的代码版本 或将存储库作为git子模块添加到您的git跟踪项目中。
- 在Xcode中打开项目,然后拖拽名为“LLDebugTool”的源文件夹到你的项目中。当提示Choose options for adding these files时,务必勾选Copy items if needed这项。
- 集成 FMDB 到项目中,FMDB是一个围绕 SQLite 的Objective-C包装器开源库。
- 在你需要使用LLDebugTool的文件里添加
#import "LLDebug.h"
,或者直接在pch文件中添加#import "LLDebug.h"
。
Swift
- 下载 最新的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包装器开源库。
- 在你需要使用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 { //####################### Color Style #######################// // Uncomment one of the following lines to change the color configuration. // [LLConfig sharedConfig].colorStyle = LLConfigColorStyleSystem; // [[LLConfig sharedConfig] configBackgroundColor:[UIColor orangeColor] textColor:[UIColor whiteColor] statusBarStyle:UIStatusBarStyleDefault]; //####################### User Identity #######################// // Use this line to tag user. More config please see "LLConfig.h". [LLConfig sharedConfig].userIdentity = @"Miss L"; //####################### Window Style #######################// // Uncomment one of the following lines to change the window style. // [LLConfig sharedConfig].windowStyle = LLConfigWindowNetBar; //####################### Features #######################// // Uncomment this line to change the available features. // [LLConfig sharedConfig].availables = LLConfigAvailableNoneAppInfo; // ####################### Start LLDebugTool #######################// // Use this line to start working. [[LLDebugTool sharedTool] startWorking]; return YES; } 复制代码
In Swift
import LLDebugToolSwift func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { //####################### Color Style #######################// // Uncomment one of the following lines to change the color configuration. // LLConfig.shared().colorStyle = .system // LLConfig.shared().configBackgroundColor(.orange, textColor: .white, statusBarStyle: .default) //####################### User Identity #######################// // Use this line to tag user. More config please see "LLConfig.h". LLConfig.shared().userIdentity = "Miss L"; //####################### Window Style #######################// // Uncomment one of the following lines to change the window style. // LLConfig.shared().windowStyle = .netBar //####################### Features #######################// // Uncomment this line to change the available features. // LLConfig.shared().availables = .noneAppInfo // ####################### Start LLDebugTool #######################// // Use this line to start working. LLDebugTool.shared().startWorking() return true } 复制代码
日志
打印和保存一个日志。 更多的log宏信息查看 LLLogHelper.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"就可以监控大部分的网络请求,包括使用NSURLSession,NSURLConnection和AFNetworking。如果你发现某些情况下无法监控网络请求,请打开一个issue来告诉我。
崩溃
你不需要做任何操作,只需要调用"startWorking"就可以截获崩溃,保存崩溃信息、原因和堆栈信息,并且也会同时保存当次网络请求和日志信息。
App信息
LLDebugTool会监控app的CPU,内存和FPS。你可以更便捷的查看app的各种信息。
沙盒
LLDebugTool提供了一个快捷的方式来查看和操作沙盒文件,你可以更轻松的删除沙盒中的文件/文件夹,或者通过airdrop来分享文件/文件夹。只要是apple支持的文件格式,你可以直接通过LLDebugTool来预览。
更多使用
- 你可以通过查看 Wiki ,获得更多帮助。
- 你可以下载并运行 LLDebugToolDemo 或 LLDebugToolSwiftDemo 来发现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 LLLogHelper LLNetworkHelper LLSandboxHelper LLStorageManager
-
UserInterface
UI文件。如果你想要修改、查看或者学习UI方面的东西,你可以查看一下这个文件夹。
Base Categories Others Resources Sections Tool
联系
- 如果你需要帮助 ,打开一个issue。
- 如果你想问一个普遍的问题 ,打开一个issue。
- 如果你发现了一个bug , 并能提供可靠的复制步骤 ,打开一个issue。
- 如果你有一个功能请求 ,打开一个issue。
- 如果你发现有什么不对或不喜欢的地方 ,就打开一个issue。
- 如果你有一些好主意或者一些需求 ,请发邮件( llworkinggroup@qq.com )给我。
- 如果你想贡献 ,提交一个pull request。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)
Martin L. Abbott、Michael T. Fisher / 陈斌 / 机械工业出版社 / 2016-4-15 / 99.00
任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。本书汇聚了作者从eBay、VISA、Salesforce.com到Apple超过30年的丰富经验, 全面阐释了经过验证的信息技术扩展方法,对所需要掌握的产品和服务的平滑扩展做了详尽的论述,并在第1版的基础上更新了扩展的策略、技术和案例。 针对技术和非技术的决策者,马丁•阿伯特和迈克尔•费舍尔详尽地介绍了影响扩展性的各个方面,包......一起来看看 《架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)》 这本书的介绍吧!