LLDebugToolSwift 1.3.8.1

LLDebugToolSwift 1.3.8.1

HDB-Li 维护。



 LLDebugTool

Version CocoaPods Compatible Carthage Compatible Platform License Language Twitter

点击查看中文简介

LLDebugTool 是一款面向开发者和测试者的调试工具,可以帮助您在不使用Xcode的情况下分析和操作数据。

LLDebugToolSwiftLLDebugTool 的扩展,提供了LLDebugTool的Swift接口,LLDebugToolSwift将与LLDebugTool同时发布。

如果您的项目是Objective-C项目,您可以使用LLDebugTool,如果您的项目是Swift项目或包含Swift文件,您可以使用LLDebugToolSwift

为您的下一个项目选择LLDebugTool,或者迁移现有项目——您一定会为此而感到高兴的!🎊🎊🎊

Gif

预览

1.3.8.1 新特性

移除自动检查版本。

  • 频繁访问网站cocoadocs.org导致cocoadocs.org禁用了对LLDebugTool的访问,因此这个功能被移除了。

  • 无需在 XCode 下运行,即可随时检查网络请求或查看特定事件的日志信息。这在解决测试员的问题时非常有用。

  • 更简单的过滤和筛选有用的信息。

  • 更简单地分析偶尔出现的问题。

  • 更简单地分析崩溃的原因。

  • 更简单地共享、预览或删除沙箱文件,这在开发阶段非常有用。

  • 更简单地观察应用内存、CPU、FPS 等信息。

  • 截图、标记和分享。

  • 更直观地查看视图结构和动态修改属性。

  • 更精确地确定应用中的 UI 元素和颜色。

  • 方便访问和比较点信息。

  • 方便访问元素边框和框架。

  • 快速输入 html。

  • 随时模拟位置。

将LLDebugTool添加到您的项目中

CocoaPods

CocoaPods 是向项目添加 LLDebugTool 推荐的方式。

目标 - C
  1. 在你的Podfile中添加LLDebugTool的条目 pod 'LLDebugTool' , '~> 1.0'
  2. 如果你只想在Debug模式下使用它,在你的Podfile中为LLDebugTool添加条目 pod 'LLDebugTool' , '~> 1.0' ,:configurations => ['Debug'],详细信息也参见Wiki/Use-in-Debug-environment。如果你想指定版本,可以使用如下格式 pod 'LLDebugTool' , '1.3.8.1' ,:configurations => ['Debug']
  3. 建议的方法是使用多个目标,并只将pod 'LLDebugTool', '~> 1.0'添加到Debug目标中。这样做的好处是它不会污染Product环境中的代码,并且可以集成到Archive Debug环境中的App(如果:configurations => ['Debug'],则只能通过XCode运行。无法作为App存档)。
  4. 运行pod install来安装pod(s)。如果你无法搜索LLDebugTool或者找不到最新发布版本,请先运行pod repo update然后再运行pod install
  5. 使用#import "LLDebug.h"在任何需要LLDebugTool的地方,或者在.pch文件中写入#import "LLDebug.h"
Swift
  1. 在 Podfile 中添加 LLDebugToolSwift 的 pod 项 pod 'LLDebugToolSwift' , '~> 1.0'
  2. 如果您只想在调试模式下使用,请在 Podfile 中添加 LLDebugToolSwift 的 pod 项 pod 'LLDebugToolSwift' , '~> 1.0' ,:configurations => ['Debug'],更多详情见 Wiki/Use in Debug environment。如果您想指定版本,使用如下格式 pod 'LLDebugToolSwift' , '1.3.8.1' ,:configurations => ['Debug']
  3. 建议的做法是使用多个目标,并且只将 pod 'LLDebugToolSwift', '~> 1.0' 添加到调试目标中。这样做的好处是不会污染产品环境中的代码,并且可以在存档调试环境中集成到 App 中(如果 :configurations => ['Debug'],则只能通过 XCode 运行。不能作为 App 存档)。
  4. 必须在 Podfile 中添加 use_frameworks!
  5. 通过运行 pod install 来安装 pod。如果无法搜索 `LLDebugToolSwift` 或者无法找到最新发布版本,请在 `pod install` 之前运行 pod repo update
  6. 通过 import "LLDebugToolSwift" 在需要的地方包含 LLDebugTool。

Carthage

Carthage是一款去中心化的依赖管理工具,负责构建你的依赖并为你提供二进制框架。

目标 - C
  1. 使用 Carthage 将 LLDebugTool 集成到您的 Xcode 项目中,在 Cartfile 中指定它

    github "LLDebugTool"

  2. 运行 carthage 以构建框架,并将构建的 LLDebugTool.framework 拖入您的 Xcode 项目。

Swift
  1. 要将 LLDebugToolSwift 集成到您的 Xcode 项目中使用 Carthage,请在您的 Cartfile 中指定它。

    github "LLDebugToolSwift"

  2. 运行 carthage 编译框架,并将编译好的 LLDebugToolSwift.framework 拖入您的 Xcode 项目中。

源文件

或者,您可以直接将名为LLDebugTool的源文件夹添加到项目中。

目标 - C
  1. 下载最新代码版本或将其作为git子模块添加到您的git跟踪项目。
  2. 在Xcode中打开您的项目,然后将名为 LLDebugTool 的源文件夹拖放到项目中。当系统提示您选择添加这些文件的选项时,请确保勾选 "如果需要则复制项目"。
  3. FMDB 集成到您的项目中,FMDB 是围绕 SQLite 的 Objective-C 封装。
  4. Masonry 集成到您的项目中,Masonry 是一个 Objective-C 约束库。没有特定的版本要求,但建议使用最新版本。
  5. 使用#import "LLDebug.h"在任何需要LLDebugTool的地方,或者在.pch文件中写入#import "LLDebug.h"
Swift
  1. 下载最新代码版本的 LLDebugTool 或将其作为 Git 子模块添加到您的 Git 跟踪项目中。
  2. 下载最新代码版本的 LLDebugToolSwift 或将其作为 Git 子模块添加到您的 Git 跟踪项目中。
  3. 在 Xcode 中打开您的项目,然后拖放名为 LLDebugToolLLDebugToolSwift 的源文件夹。当提示选择添加这些文件时的选项时,请确保选中“如有必要则复制”。
  4. FMDB 集成到您的项目中,FMDB 是围绕 SQLite 的 Objective-C 封装。
  5. Masonry 集成到您的项目中,Masonry 是一个 Objective-C 约束库。没有特定的版本要求,但建议使用最新版本。
  6. 使用 import LLDebugToolSwift 在需要的位置包含 LLDebugTool。

使用

开始使用

您需要在 "application:(UIApplication * )application didFinishLaunchingWithOptions:(NSDictionary * )launchOptions" 方法中启动 LLDebugTool,否则您将丢失一些信息。

如果您想配置一些参数,必须在 "startWorking" 之前进行配置。更详细的配置信息请参阅 LLConfig.h

  • 快速开始

在 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;
}

在 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
    }
  • 从自定义配置开始

在 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;
}

在 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。如果在某些情况下发现无法进行监控,请创建一个问题并告诉我。

日志

打印并保存日志。更多日志宏的详细信息请参阅LLDebugToolMacros.h

  • 保存日志

在 Objective-C 中

#import "LLDebug.h"

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

在 Swift 中

import LLDebugToolSwift

    func testNormalLog() {
        // Insert an LLog where you want to print.
        LLog.log(message: "Message you want to save or print.")
    }
  • 带事件和级别的保存日志

在 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.");
}

在 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”来拦截崩溃、存储崩溃信息、原因信息和堆栈信息,并在此期间存储网络请求和日志信息。

AppInfo

LLDebugTool监视应用的CPU、内存和FPS。同时,您还可以快速查看应用的各种信息。

沙盒

LLDebugTool提供了一个快速查看和管理沙盒的方法,您可以轻松删除沙盒内的文件/文件夹,或者通过AirDrop将文件/文件夹共享到其他地方。只要苹果支持这种文件格式,您就可以直接在LLDebugTool中预览文件。

截图

LLDebugTool 提供截图功能,并支持简单绘图和标记,方便在测试期间或 UI 设计师调试应用时进行记录。

层次结构

LLDebugTool 提供了一个查看结构工具,用于在非调试模式下查看或修改元素属性和信息。

放大镜

LLDebugTool提供了一个放大工具,可以用于放大本地_ui并查看指定像素的色值。

标尺

LLDebugTool提供了一种方便的显示触摸点信息的工具。

小部件边框

LLDebugTool 提供了一个显示元素边框的功能,方便查看视图的框架。

HTML

LLDebugTool可以在任何时候通过WKWebViewUIWebView或您自定义的ViewController在您的应用程序中调试HTML页面。

位置

LLDebugTool 提供了在任何时候模拟位置的函数。

更多用法

  • 您可以查看Wiki 获取更多帮助。
  • 您可以通过下载并运行 LLDebugToolDemoLLDebugToolSwiftDemo 来发现更多关于 LLDebugTool 的用法。演示项目是在 MacOS 10.15.1、XCode 11.2.1、iOS 13.2.2 和 CocoaPods 1.8.4 环境下构建的。如果有任何版本兼容性问题,请通知我。

需求

LLDebugTool支持iOS 8+,并且需要使用ARC进行编译。它依赖于以下Apple框架,这些框架通常已包含在大多数Xcode模板中

  • UIKit

  • Foundation

  • SystemConfiguration

  • Photos

  • QuickLook

  • CoreTelephony

  • CoreLocation

  • MapKit

  • AVKit

结构

  • LLDebug.h

    公共头文件。您可以参考它到预编译头文件。

  • DebugTool

    LLDebugTool 用于启动和停止 LLDebugTool,您需要查看它。

    LLConfig 用于自定义颜色、大小、标识和其他信息。若要配置任何内容,您需要关注此文件。

    LLDebugToolMacros.h 快速宏定义文件。

  • 组件

    • Network 用于监控网络请求。
    • Log 用于快速打印和保存日志。
    • Crash 用于收集应用程序崩溃时的崩溃信息。
    • AppInfo 用于监控应用程序属性。
    • Sandbox 用于查看和操作沙盒文件。
    • Screenshot 用于处理和显示截图。
    • Hierarchy 用于处理和展示视图结构。
    • Magnifier 用于放大镜功能。
    • Ruler 用于尺寸规则功能。
    • Widget Border 用于部件边框功能。
    • Function 用于显示功能。
    • Html 用于动态测试网页视图。
    • Location 用于模拟位置。
    • Setting 用于动态设置配置。

通信

  • 如果您需要帮助,请创建一个issue。
  • 如果您想提出一个一般问题,请创建一个issue。
  • 如果您发现了一个bug,并且可以提供可靠重现步骤,请创建一个issue。
  • 如果您有一个功能请求,请创建一个issue。
  • 如果您发现任何错误或不喜欢的地方,请创建一个issue。
  • 如果您有一些建议或请求,请发送邮件至([email protected])。
  • 如果您想贡献代码,请提交一个pull request。

联系

变更日志

每个LLDebugTool版本的简要总结可以在变更日志中找到。

许可证

该代码根据MIT 许可证的条款和条件进行分发。