查看原文
其他

1.2 万 Star!一个 iOS 应用调试利器

小秋 开源前哨 2022-09-24

【导语】:用于 iOS 开发的应用内调试工具,可以查看和修改正在运行的应用程序中的几乎所有状态。

简介

FLEX (Flipboard Explorer) 是一套用于 iOS 开发的应用内调试工具。使用时,FLEX 会显示一个位于应用程序上方窗口中的工具栏。在工具栏上可以查看和修改正在运行的应用程序中的几乎所有状态。比如:调整布局、浏览文件、查看网络请求历史、本地数据库等。

与许多其他调试工具不同,FLEX 完全在应用程序内部运行,因此无需连接到 LLDB/Xcode 或其他远程调试服务器。它在模拟器和物理设备上运行良好。主要功能有:

  • 检查和修改层次结构中的视图。
  • 查看任何对象的属性和变量。
  • 动态修改许多属性和变量。
  • 动态调用实例和类方法。
  • 可以观察详细的网络请求历史记录。
  • 添加模拟器键盘快捷键。
  • 查看系统日志消息(例如来自 NSLog)。
  • 通过扫描堆访问任何活动对象。
  • 查看应用程序沙盒中的文件系统。
  • 浏览文件系统中的 SQLite/Realm 数据库。
  • 使用 control、shift 和 commandcontrol、shift 和 command 键在模拟器中触发 3D Touch。
  • 快速访问有用的对象,例如 [UIApplication sharedApplication] 应用程序委托、关键窗口上的根视图控制器等。
  • 动态查看和修改 NSUserDefaults 值。

项目地址是:

https://github.com/FLEXTool/FLEX

用法

在 iOS 模拟器中,可以使用键盘快捷键来激活 FLEX。f 切换到 FLEX 工具栏,敲击 ? 可以显示快捷键的完整列表。还可以以编程方式显示 FLEX:

#if DEBUG
#import "FLEXManager.h"
#endif

...

- (void)handleSixFingerQuadrupleTap:(UITapGestureRecognizer *)tapRecognizer
{
#if DEBUG
    if (tapRecognizer.state == UIGestureRecognizerStateRecognized) {
        // This could also live in a handler for a keyboard shortcut, debug menu item, etc.
        [[FLEXManager sharedManager] showExplorer];
    }
#endif
}

功能示例

修改视图

选择视图后,可以点击工具栏下方的信息栏以显示有关该视图的更多详细信息,并修改属性和调用方法。

网络调试

启用后,可以查看使用 NSURLConnection 或 NSURLSession 发出的所有请求,调整缓存的响应主体类型和响应缓存的大小限制。可以设置网络调试开启自启动。

堆对象

FLEX 可以查询 malloc 以获取所有实时分配的内存块。

模拟器键盘快捷键

键盘快捷键可以激活 FLEX 工具,使用箭头进行选择,使用 Esc 退出,也可以自定义快捷键。

文件浏览器

查看应用程序包或沙箱容器中的文件系统。FLEX 显示文件大小、图像预览以及格式化的 .json 和 .plist 文件。

SQLite 浏览器

使用 FLEX 查看 SQLite 数据库文件(带有.db或.sqlite扩展名)或 Realm 数据库文件,可以查看所有表,并且可以通过点击列标题对单个表进行排序。

模拟器中的 3D Touch

使用 commandcontrol、shift 和 command 键,可以在模拟器中模拟不同级别的 3D Touch。

NSUserDefaults 编辑

FLEX 允许编辑字符串、数字、数组和字典的任意组合的默认值,输入被解析为JSON。

安装

FLEX 需要 iOS 9 或更高版本的应用程序。要运行示例项目,请在 Example/ 文件夹中打开终端窗口并运行 pod install,然后打开生成的工作区。

CocoaPods

FLEX 在 CocoaPods 上可用,只需将以下行添加到 podfile 中:

pod 'FLEX', :configurations => ['Debug']

Carthage

将以下内容添加到 Cartfile 中:

github "flipboard/FLEX"

Buck

如果使用的是 Buck,并且希望消除 FLEX 发出的一些警告,那就需要将 FLEX 构建为一个 apple_library 并传递 -Wno-unsupported-availability-guard 标志以及下面的其他警告标志以禁用 FLEX 可能具有的任何其他警告。

  • Wno-deprecated-declarations
  • Wno-strict-prototypes
  • Wno-unsupported-availability-guard

手动

手动将文件夹 Classes/ 添加到 Xcode 项目中,或者直接拖入整个 FLEX/ 文件夹。


- EOF - 


更多优秀开源项目(点击下方图片可跳转)



开源前哨

日常分享热门、有趣和实用的开源项目。参与维护10万+star 的开源技术资源库,包括:Python, Java, C/C++, Go, JS, CSS, Node.js, PHP, .NET 等

关注后获取

回复 资源 获取 10万+ star 开源资源



分享点赞在看

支持我们分享更多优秀开源项目,谢谢!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存