Shakebug allows you to receive feedback from your beta testers or real users and improve the quality of your application in a simple way. Here users just need to shake their mobile and all the data regarding bugs & crashes can be seen by developers through their log in panel. It also helpful to analyse your users, session, location etc. Addition, you can add events on each action of your application and track it using this Shakebug framework.
Sign up for a service at https://www.shakebug.com
- Swift
- Objective-C
- SwiftUI
- Project with and without SceneDeleage
✅ Image bug reporting
✅ Screen-Recording bug beporting
✅ Automatic Crash reporting
✅ Analytics
✅ Events
✅ Custom theme color, title and error message
✅ On-premise hosting
- Minimum iOS deployment 13.0
- Minimum Mac OS deployment 10.15
- Carthage release for Swift is built with Xcode 13.0 or later
- CocoaPods: 1.10 or later.
To integrate ShakeBug into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'ShakeBug'
Then, run the following command:
$ pod install
Add following line to your Xcode project's Cartfile
github "softnoesis/ShakeBug"
Then, run the following command:
$ carthage update
Then drag Shakebug.xcframework from Carthage folder to your Xcode project's settings.
Navigate to the SPM section in your project, add a new package, point it to
https://github.com/softnoesis/ShakeBug/
and select the latest version.
-
Import the ShakeBug framework header into your app delegate.
// Swift import ShakeBug
// Objective-C #import <ShakeBug/ShakeBug.h>
-
Add the following to your app delegate's
application:didFinishLaunchingWithOptions:
method.// Swift ShakeBugSDK.sharedInstance.initiateWithKey(“<Your Key>")
// Objective-C [[ShakeBugSDK sharedInstance] initiateWithKey:@"<Your Key>"];
Be sure to replace
<Your Key>
with your application key which given by ShakeBug website.
NSPhotoLibraryUsageDescription
must be added in info.plist.
- Add the following to your app delegate's
application:didFinishLaunchingWithOptions:
method for showing or not showing first time tutorial screen
// Swift
ShakeBugSDK.sharedInstance.showTutorialScreenFirstTime(false) // Default value True
// Objective-C
[[ShakeBugSDK sharedInstance] showTutorialScreenFirstTime:NO];// Default value YES
- If you want to show bug or crash from Simulator then use following code
application:didFinishLaunchingWithOptions:
// Swift
ShakeBugSDK.sharedInstance.allowBugCrashFromSimulator(true) // Default value false
// Objective-C
[[ShakeBugSDK sharedInstance] allowCrashFromSimulator:YES];// Default value NO
- If you dont want to show any logs on console then use following code
application:didFinishLaunchingWithOptions:
// Swift
ShakeBugSDK.sharedInstance.makeLogEnabled(false) // Default value false
// Objective-C
[[ShakeBugSDK sharedInstance] makeLogEnabled:NO];// Default value NO
- If you want to set forcefully any language for the bug reporting screen then use following code
application:didFinishLaunchingWithOptions:
// Swift
ShakeBugSDK.sharedInstance.setShakebugSDKLanguage(ShakebugLanguage.french)
// Objective-C
[[ShakeBugSDK sharedInstance] setShakebugSDKLanguage:ShakebugLanguage.french];
Note: Just mind that here, by default it will take device language as defualt language.
- Developer can also set custome theme color in Shakebug SDK screens:
// Swift
ShakeBugSDK.sharedInstance.setShakebugThemeColor(UIColor.green)
// Objective-C
[[ShakeBugSDK sharedInstance] setShakebugThemeColor:[UIColor greenColor]];
- Developer can also set custom title for Shakebug annotate and feedback input screen:
// Swift
ShakeBugSDK.sharedInstance.changeSDKScreenTitle("Annotate your Bug", "Feedback")
// Objective-C
[[ShakeBugSDK sharedInstance] changeSDKScreenTitle:@"Annotate your bug" :@"Add detail"];
- Set custom error message for any error alert screen from SDK.
// Swift
ShakeBugSDK.sharedInstance.changeSDKErrorAlertMessage("This Error")
// Objective-C
[[ShakeBugSDK sharedInstance] changeSDKErrorAlertMessage:@"Something wrong.."];
- If you have on-premise hosting plan then following method will be used.
// Swift
ShakeBugSDK.sharedInstance.setShakebugSDKEndPointURL(url: "", headerKey: "", sslPublicKey: "")
// Objective-C
[[ShakeBugSDK sharedInstance] setShakebugSDKEndPointURLWithUrl:@"" headerKey:@"" sslPublicKey:@""];
Note: New enpoint url, its header key and SSL public key(Optional)
- User can report bug either by shaking phone or by triggering default screen capture event. This method can be used to manage "screen capture" event should trigger bug reporting or not.
// Swift
ShakeBugSDK.sharedInstance.allowToReportBugByScreenCapture(false) // Default value true
// Objective-C
[[ShakeBugSDK sharedInstance] allowToReportBugByScreenCapture:NO]; // Default value YES
- User can report bug either by shaking phone or by triggering default screen capture event. This method can be used to manage "shaking mobile" should trigger bug reporting or not.
// Swift
ShakeBugSDK.sharedInstance.allowToReportBugByShakingMobile(true) // Default value true
// Objective-C
[[ShakeBugSDK sharedInstance] allowToReportBugByShakingMobile:YES]; // Default value YES
If you want add event to any screen or activity use following methods
// Swift
ShakeBugSDK.sharedInstance.addEventKey(key:"App_open", eventValue: "Started app") //pass any key or value
// Objective-C
[[ShakeBugSDK sharedInstance] addEventKey:@"App_open" eventValue:@"Started app"];// pass any key or value
Build & run your app. Once your app is running, shake your device (^⌘Z in the simulator) to report a bug! Bug/Crash reports are sent directly to login panel of Shakebug.com and also notify on your registered email address. Additionally, now user can report bug if they trigger screen capture event in iPhone.
If you want to trigger bug reporting screen without shaking then you can call following method in any button action of any screen.
// Swift
ShakeBugSDK.sharedInstance.triggerBugReporting()
// Objective-C
[[ShakeBugSDK sharedInstance] triggerBugReporting];
Visit on: https://www.shakebug.com
Contact us on [email protected] in case of any use.