ShakeReport 0.09

ShakeReport 0.09

LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.

  • By
  • Jeremy Templier


SRReport is a small library which make easy for your testers to report bugs. Shake the iDevice, and they will send:

  • a screenshot of the current view
  • the logs of the current session
  • the crash report if a crash has been reported
  • the dumped view hierarchy


Add those frameworks to your target:

  • QuartzCore
  • MessageUI

Copy the library folder in your project.

Include SRReporter.h

Then, copy this line to start the reporter:

- (BOOL)application:(UIApplication *)application 
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    [[SRReporter reporter] startListener]; //this line starts the reporter
    return YES;


Shake the iDevice when you want to report something. A Mail Composer view will appear with all the information that will be send. The tester can add some explanation, and change the recipient of the email.


You can setup the default email address that should receive the reports:

SRReporter *reporter = [SRReporter reporter];
[reporter setDefaultEmailAddress:@"[email protected]"];
[reporter startListener];

Additional Information

If you need to add custom information to the reports sent by email, you can do it!

[reporter setCustomInformationBlock:^NSString *{
    return [NSString stringWithFormat:@"Application: Sample Application, User: Jayztemplier, Device Name: %@", [[UIDevice currentDevice] name]];

The block has to return a string which will be inserted in the additionalInformation.log file.

Use it with a Backend

You can also use Shake Report with a backend. And guess what!? It's open source too!

To send the reports to the server, setup the listener like that:

SRReporter *reporter = [SRReporter reporter];
// Send data to a Server instead of displaying the mail composer
NSURL *url = [NSURL URLWithString:@"http://localhost:3000/reports.json"];
[reporter startListenerConnectedToBackendURL:url];

If you backend is protected with a username and a password, you have to setup the reporter:

[reporter setUsername:@"jayztemplier"];
[reporter setPassword:@"mypassword"];


SRReport is available under the MIT license. See the LICENSE file for more info