iOS 应用内bug报告工具,为开发者和测试者提供带注释的屏幕截图和控制台日志。由 Marco Arment 开发。
(简要:集成 Bugshot 和 NSLog()
收集,适用于测试。)
只需在任何应用界面执行您选择的操作(摇动、两指向上滑、三指双击、从屏幕右侧边缘滑动等),Bugshot报告窗口即可滑动弹起。
它将自动截图您在应用中看到的任何内容,并包括一个活版的 NSLog()
控制台日志(无依赖)。 (也与 CocoaLumberjack 和能输出到标准系统日志的其他任何东西兼容,或您可以手动添加消息。)
点击截图将弹出一个内嵌的 Bugshot 应用版本:用粗橘色箭头和方框标记要注释的内容,或模糊处理敏感信息。
点击控制台将弹出一个全屏实时控制台,在调试时非常有用,即使您不提交 bug 报告也是如此。
如果想要省略截图或日志,则点击相应的绿色勾选标记。通过实现 BugshotSubmissionDelegate
并将您的自定义实现添加到 BugshotKit.sharedManager.submissionDelegate
中,您可以实现自己的 bug 提交机制。
BugshotKit 是为开发和非正式Beta测试制作的。 请勿将其用于App Store的构建版本。
为了帮助防止意外将 BugshotKit 集成到您的应用中,我已经包含了一个有用的私有API调用,在提交时会立即导致验证失败。如果您无论如何都要发布,它将在运行时尝试检测App Store的构建版本,并自行禁用。
这些保护措施并不能保证。请不要依赖它们。将 BugshotKit 从您的 App Store 构建版本中移除。
确保您不会将 BugshotKit 集成到您的 App Store 构建版本中的最简单方法是仅在调试和非正式构建中链接到它。为此
-lBugshotKit
添加到“其他链接器标志”设置中,但仅针对调试和非正式构建。#if defined(DEBUG) || defined(ADHOC)
...#endif
”)。只需在application:didFinishLaunchingWithOptions:
中调用[BugshotKit enableWithNumberOfTouches:...]
即可。
#import "BugshotKit.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[BugshotKit enableWithNumberOfTouches:1 performingGestures:BSKInvocationGestureSwipeUp];
}
就是这样,真的。控制台跟踪将立即开始,并在下一个运行循环中,它会寻找带有rootViewController
的UIWindow
并附加其手势处理器(如果有)。
Bugshot也可以在用户摇动设备时显示,您可以用在应用代理中的BSKWindow
代替UIWindow
。
self.window = [[BSKWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
如果您不希望使用手势触发,您可以手动调用它(比如从按钮中)。
[BugshotKit show];
请参阅包含的LICENSE文件。(这是MIT许可。)
如果您使用BugshotKit,请考虑支持我的账单支付项目。
感谢。
BugshotKit包含Inconsolata,这是一个在SIL Open Font License下发布的免费等宽编程字体,使控制台看起来更美观。
将其添加到您应用程序的资源中即可使用。如果它不存在,BugshotKit将回退到Courier New,但控制台看起来会更差。