Aardvark
Aardvark 使创建可执行的错误报告变得极为简单。
Aardvark 由一系列框架组成,提供不同的错误报告和记录组件。
- CoreAardvark - Aardvark 的核心结构。安全地在 App 扩展中运行。
- Aardvark - 构建错误报告的核心工具。
- AardvarkMailUI - 通过电子邮件编辑器发送错误报告的实现。
- AardvarkLoggingUI - 用于在 iOS 应用程序中查看 Aardvark 日志的 UI 组件。
开始使用
只需三个步骤即可启动 Aardvark 的日志记录和错误报告。
1) 安装 Aardvark
使 Aardvark 运行起来最容易的方法是添加对 AardvarkMailUI 框架的依赖。
CocoaPods
使用pod 'AardvarkMailUI'
Carthage
使用github "Square/Aardvark"
使用 Git 子模块
使用 git submodule add [email protected]:Square/Aardvark.git
手动检出子模块,将 Aardvark.xcodeproj 拖入您的项目中,并将 AardvarkMailUI 添加为构建依赖项。
2) 通过单次方法调用设置电子邮件错误报告
最佳实践是在加载应用程序的界面时进行此操作。
Swift 语言中
Aardvark.addDefaultBugReportingGestureWithEmailBugReporter(withRecipient:)
Objective-C 语言中
[Aardvark addDefaultBugReportingGestureWithEmailBugReporterWithRecipient:]
print
调用替换为 log
。
3) 将 在 Swift 中,将 print
调用替换为 log
。在 Objective-C 中,将 NSLog
调用替换为 ARKLog
。
上报错误
完成上述操作后,用户可以通过执行两指长按手势来报告一个错误。这个手势会触发一个警示框询问用户发生了什么。当用户输入这些信息时,将生成带有附加的应用截图和包含最后2000条日志的文本文件的电子邮件错误报告。屏幕截图将在Aardvark内创建和存储,无需访问相册。
想在设备上查看日志吗?添加AardvarkLoggingUI框架作为依赖,并在屏幕上推送一个ARKLogTableViewController
实例以查看您的日志。
性能
日志被分布式到内部后台队列中的日志记录器,永远不会减慢您的应用程序。日志存储观察者观察到的内容将增量追加到磁盘,而不会存储在内存中。
异常日志记录
要启用未捕获异常的日志记录,请调用ARKEnableLogOnUncaughtException()
。当发生未捕获的异常时,堆栈跟踪将被记录到默认日志分发器。要测试示例应用程序中的此功能,请在屏幕上按住至少5秒钟。
异常被记录后,它将被传播到任何现有的未捕获异常处理器。默认情况下,异常将被记录到默认日志分发器。要记录到不同的分发器,请调用ARKEnableLogOnUncaughtExceptionToLogDistributor(...)
。您可以多次调用该方法以启用对多个日志分发器的日志记录。
自定义Aardvark
想自定义如何提交错误报告?传递自己的对象,使其符合ARKBugReporter
协议,并将期望的UIGestureRecognizer
子类传递到[Aardvark addBugReporter:triggeringGestureRecognizerClass:]
中。您可以通过修改返回的手势识别器进一步自定义错误报告的触发方式。
想更改日志的格式吗?或者为不同功能使用不同的日志文件?或者将日志发送到第三方服务?请查看日志文档。
想使用Aardvark进行日志记录,但不想使用Aardvark的错误报告工具?将依赖项更改为对Aardvark
的依赖,并跳过入门指南中的步骤#2。
扩展
- AardvarkReveal 提供生成包含 Reveal 文件的错误报告附件的组件,这对于调试 UI 问题非常有帮助。
- AardvarkCrashReport 提供生成包含崩溃报告的错误报告附件的组件,可以是上一次应用程序启动时的崩溃报告,也可以是显示每个线程当前状态的即时报告。
需求
- Xcode 11.0 或更高版本
- iOS 12.0 或更高版本
- watchOS 4.0 或更高版本
贡献
我们很高兴您对 Aardvark 感兴趣,并期待看到您能将其带到哪里。在提交 Pull Request 之前,请阅读我们的 贡献指南。
谢谢,祝您记录愉快!