DBDebugToolkit
DBDebugToolkit 是一个用 Objective-C 和 Swift 编写的调试库。旨在提供尽可能多的易于访问的工具,同时保持集成过程无缝。
特性
- 性能
- CPU 使用率(当前,最大,图表)
- 内存使用率(当前,最大,图表)
- 帧率(当前,最小,图表)
- 显示当前 CPU 使用率、内存使用率和帧率的窗口,始终保持在屏幕顶部
- 模拟内存警告
- 用户界面
- 显示所有视图框架
- 减速动画
- 显示屏幕上的触摸(用于录制和屏幕共享)
- 在屏幕上显示可自定义的网格覆盖层
- 自动布局跟踪
- 当前视图描述
- 视图控制器层次结构
- 可用字体列表及预览
- 显示 UIDebuggingInformationOverlay
- 网络
- 显示应用程序发送的所有请求的列表
- 请求和响应预览
- 资源
- 文件系统:浏览和删除选定的文件
- 用户默认设置:浏览、删除选定项和清除所有数据
- 钥匙串:浏览、删除选定项和清除所有数据
- 核心数据:浏览所有托管对象及其关系,并可进行排序和过滤选项
- Cookie:浏览、删除选定 Cookie 和清除所有数据
- 控制台
- 在文本视图中显示控制台输出
- 通过电子邮件发送控制台输出并与设备和系统信息一起发送
- 模拟位置
- 崩溃报告
- 显示所有崩溃的列表
- 包含详细资料、堆栈跟踪、控制台输出和屏幕截图的崩溃报告
- 通过系统操作发送崩溃报告
- 从菜单中修改自定义变量值
- 向菜单中添加自定义操作
- 打开应用程序设置
- 清除数据的应用程序快捷项目
- 显示版本号和构建号
- 显示设备型号和 iOS 版本
示例
要运行示例项目,请克隆存储库,然后从 Example 目录中运行 pod install
。示例项目是用 Objective-C 编写的。本README中的代码示例是用 Swift 3.0 编写的。
要求
DBDebugToolkit 需要 iOS 13.0 或更高版本。
使用方法
配置
DBDebugToolkit旨在提供尽可能多的实用调试工具。然而,第二个同样重要的目标是确保所有iOS项目的配置无缝。在AppDelegate
中设置DBDebugToolkit是一个不错的选择,因为它可以使其尽可能快地启动。最简单的设置只包含一行代码
import DBDebugToolkit
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
DBDebugToolkit.setup()
return true
}
配置完成后,只需摇动设备即可显示包含所有调试选项的菜单
阅读有关触发器的详细信息,了解如何自定义菜单显示。
触发器
触发器是告诉DBDebugToolkit显示菜单的对象。有以下3个预定义触发器
DBShakeTrigger
- 对摇动设备做出反应。DBTapTrigger
- 对触摸屏幕做出反应。DBLongPressTrigger
- 对屏幕长按作出反应。
默认情况下,DBDebugToolkit 配置了 DBShakeTrigger
。您也可以提供自己的触发器数组
import DBDebugToolkit
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let tapTrigger = DBTapTrigger(numberOfTouchesRequired: 3)
let longPressTrigger = DBLongPressTrigger(minimumPressDuration: 1.0)
let shakeTrigger = DBShakeTrigger()
DBDebugToolkit.setup(with: [tapTrigger, longPressTrigger, shakeTrigger])
return true
}
这只是一些示例。DBTapTrigger
和 DBLongPressTrigger
都有更多的自定义选项。
您还可以创建自己的触发器。为此,创建一个符合协议 DBDebugToolkitTrigger
的类。然后创建该类的实例并将其传递给设置方法。
特性
现在可以在以下位置找到特性和示例的完整列表: 特性。
安装
CocoaPods
DBDebugToolkit 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行
pod "DBDebugToolkit"
然而,本着提供一些功能,DBDebugToolkit 使用私有 API。使用它的代码是混淆的,以降低在 App Store 上拒绝应用的风险,但并不能保证足够。话虽如此,以下是安装 DBDebugToolkit 的更安全的方式
-
仅添加到调试构建中
现在可以指定特定 pod 的构建配置
pod "DBDebugToolkit", :configurations => ['Debug']
设置完成后,需要将所有使用 DBDebugToolkit 的代码放在预处理宏中
#if DEBUG import DBDebugToolkit #endif func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { #if DEBUG DBDebugToolkit.setup() #endif return true }
这种设置的缺点是,它不会将 DBDebugToolkit 包含在发送给测试者的构建中。
-
为 App Store 发布创建单独的目标
创建 App Store 发布的单独目标后,您的 podfile 可能可以这样定义
def common_pods # Here are all the pods that will be used in both targets. end target 'YourApplication' do common_pods end target 'YourApplicationAppStore' do common_pods pod "DBDebugToolkit" end
然后您需要在代码中区分目标。为此,您可以在 App Store 目标构建配置中添加一个自定义标志。假设您将该标志命名为
APPSTORE
,则所有使用 DBDebugToolkit 的代码都将放置在预处理宏中#if !(APPSTORE) import DBDebugToolkit #endif func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { #if !(APPSTORE) DBDebugToolkit.setup() #endif return true }
为 App Store 发布创建单独目标的方式将帮助您防止将包含 DBDebugToolkit 中私有 API 调用的构建发送到 App Store 审查。然而,您必须记住在开发期间将所有文件添加到两个目标中。您将不得不决定哪种方法最适合您的项目。也许在每次 App Store 发布之前手动从 podfile 中删除 DBDebugToolkit 会更容易一些。
Carthage
要将DBDebugToolkit集成到您的Xcode项目中并使用Carthage,请在您的Cartfile中指定它。
github "dbukowski/DBDebugToolkit" ~> 0.7.0
运行carthage update来构建框架,并将构建好的DBDebugToolkit.framework拖到您的Xcode项目中。
作者
由Gamada-d维护,[email protected]
由Dariusz Bukowski创建,[email protected]
许可协议
DBDebugToolkit在MIT许可下可用。更多信息请参阅LICENSE文件。