1.2 万 Star!一个 iOS 应用调试利器
【导语】:用于 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 开源资源
分享、点赞和在看
支持我们分享更多优秀开源项目,谢谢!