Buglife is an awesome bug reporting SDK & web platform for iOS apps. Here's how it works:
- User takes a screenshot, or stops screen recording
- User annotates their screenshot & writes feedback
- Bug reports are pushed to your team's email/Jira/Slack/Asana/wherever you track bugs.
You can also find Buglife for Android here.
|Free + no account required|
|🏃🏽♀️||Fast & lightweight|
|Automatic caching & retry|
|Custom form fields, with pickers & multiline text fields|
|Advanced logging, with debug / info / warning levels|
|Custom attachments, including JSON & SQLite support|
|Attach photos & video from camera roll|
|16 languages supported, with RTL for Arabic + Hebrew|
|Automatic view blurring for sensitive information|
|👩🏽💻||Written in Objective-C, with full Swift support|
To try the example app, you can either run
pod try Buglife from your command line, OR clone this repository and open the Xcode project under the “Example” directory.
To integrate Buglife into your Xcode project using CocoaPods, specify it in your
Then, run the following command:
$ pod install
Place the following line in your Cartfile:
carthage update. Then drag & drop the Buglife.framework in the Carthage/build folder to your project. Refer to the Carthage README for detailed / updated instructions.
Unzip it & pull
Buglife.frameworkinto the Frameworks group in your project. In the following dialog box, make sure you have "Copy items if needed" checked.
Import the Buglife framework header into your app delegate.
// Swift import Buglife
// Objective-C #import <Buglife/Buglife.h>
Add the following to your app delegate's
// Swift Buglife.shared().start(withEmail: "[email protected]")
// Objective-C [[Buglife sharedBuglife] startWithEmail:@"[email protected]"];
Be sure to replace
[email protected]with your own email address; this is where bug reports will be sent to.
Build & run your app. Once your app is running, shake your device (^⌘Z in the simulator) to report a bug! Bug reports are sent directly to your email address.
You can customize how the bug reporter is invoked. Rather than shake, we recommend configuring the bug reporter to be shown when a user takes a screenshot:
// Swift Buglife.shared().invocationOptions = .screenshot
// Objective-C [Buglife sharedBuglife].invocationOptions = LIFEInvocationOptionsScreenshot;
To learn more about customizing Buglife, refer to the documentation.
- Xcode 8 or later
- iOS 9 or later
We don't have any contributing guidelines at the moment, but feel free to submit pull requests & file issues within GitHub!