Bugsnatch
Bugsnatch是一个轻量级的用于iOS的bug报告库,由Swift编写。它通过收集应用程序和设备信息来创建bug报告模板。它可以通过摇动手势或截屏来触发。
它支持通过电子邮件或通过Productive工具来报告bug。
特性
- 收集应用程序和设备信息
- 将截图附加到电子邮件
- 有两种变化的版本
- 电子邮件
- Productive
- 完全可配置
- 字符串定制
- 选择摇动手势或截屏作为触发器
- 添加自定义触发器
- 动态添加额外的调试信息
配置
对于电子邮件版
- 在
AppDelegate
中进行配置
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let bugsnatchConfig = BugsnatchConfig(
trigger: ScreenshotTrigger(),
triggerActionConfig: EmailConfig(),
extraDebugInfoDelegate: self)
Bugsnatch.shared.setup(config: bugsnatchConfig)
return true
}
- 支持额外的调试信息
extension AppDelegate: BugsnatchExtraDebugInfoDelegate {
var extraDebugInfo: String? {
return Date().debugDescription // example dynamic info
}
}
- 在iPhone上,需要安装原生邮件应用并链接一个账户。
- 如果使用Gmail:在iPhone上,进入
设置
->密码与账户
->Gmail
并启用邮件。
针对生产版本的
- 在
AppDelegate
中进行配置
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// can be found in Productive URL, e.g. https://app.productive.io/someOrganizationName/projects/12345
let organizationName = "someOrganizationName"
let projectId = 12345
let productiveConfig = ProductiveConfig(organizationId: organizationName, projectId: projectId)
let bugsnatchConfig = BugsnatchConfig(
trigger: ScreenshotTrigger(),
triggerActionConfig: productiveConfig)
Bugsnatch.shared.setup(config: bugsnatchConfig)
return true
}
- 将
NSCameraUsageDescription
添加到Info.plist
中,以便在WebView中尝试将新照片附加到生产任务时,应用程序不会崩溃。
添加自定义触发器
为触发Bugsnatch创建自己的触发器是简单的
- 遵循
Triggerable
协议 - 在
TriggerDelegate
上调用didTrigger()
额外设置
- 当使用
ShakeGestureTrigger
时,在设备上保存屏幕截图,请将NSPhotoLibraryAddUsageDescription
添加到Info.plist
中。
示例项目
要运行示例项目,请首先克隆存储库,然后从示例目录运行pod install
。示例项目配置为电子邮件版本。
需求
- iOS 9.0+
- Xcode 10.2+
- Swift 5+
安装
Bugsnatch可通过CocoaPods获取。要安装它,只需在您的Podfile中添加以下行即可
- 针对电子邮件版本
pod 'Bugsnatch/Email'
- 针对生产版本
pod 'Bugsnatch/Productive'
作者
达曼·达博,[邮箱地址捞出]
由 Infinum 维护
许可协议
Bugsnatch 可在 MIT 许可协议下使用。有关更多信息,请参阅 LICENSE 文件。
- 版权所有 (c) 2019 萨格勒布应用科学大学 (TVZ)
- 版权所有 (c) 2019 达曼·达博
- 版权所有 (c) 2019 Infinum