A React Native wrapper for Buglife
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android
example
ios
.gitignore
LICENSE.txt
README.md
index.js
package.json

README.md

react-native-buglife

React Native wrapper for Buglife iOS and Buglife Android.

npm version

Installation

  1. npm install react-native-buglife --save
  2. react-native link to link the native libraries to the react wrappers.

If you intend to ship with Buglife to TestFlight or the iOS App Store, you'll need to add NSPhotoLibraryUsageDescription to your Info.plist. See this article.

Configuration

Android native configuration

  1. Open your app's build.gradle, and make sure the compileSdkVersion is at least 26, and minSdkVersion is at least 16.

  2. If you are not prompted to do so by Android Studio, add the following maven repository to your project's build.gradle buildscript section:

    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    

    eg.

    buildscript {
        repositories {
            jcenter()
            maven {
                url 'https://maven.google.com/'
                name 'Google'
            }
        }
        ...
    }
  3. Add the following lines to the end of the onCreate() method in your main Application subclass. (If your app doesn't have one already, create an Application subclass and declare it in AndroidManifest.xml.)

    Buglife.initWithEmail(this, "you@yourdomain.com");
    Buglife.setInvocationMethod(InvocationMethod.SCREENSHOT);

    Be sure to replace you@yourdomain.com with your own email address, as bug reports will be sent to this address.

iOS native configuration

  1. Open AppDelegate.m and add the following import statement below the others:

    #import "Buglife.h"
  2. Add the following to the end of the application:didFinishLaunchingWithOptions: method in AppDelegate.m:

    [[Buglife sharedBuglife] startWithEmail:@"you@yourdomain.com"];
    [[Buglife sharedBuglife] setInvocationOptions:LIFEInvocationOptionsScreenshot];
  3. Add the NSPhotoLibraryUsageDescription key to your iOS app's Info.plist if it doesn't have it already. See the Buglife iOS App Store documentation.

Javascript configuration

Import & initialize Buglife within App.js:

var Buglife = require('react-native-buglife');

Build & run

Build & run on a device, then take a screenshot to invoke the bug reporter! Submit your first bug report, and it'll show up in your email.

Customization

User identification

You may want to add the reporter's email address or other account identifier to your bug reports. You can do this with

// Set an email address
Buglife.setUserEmail("name@example.com");

// Set a user identifier
Buglife.setUserIdentifier("account name");

Attachments

Your application can include custom JSON attachments with each bug report. For example, to add an attachment solely to the next invocation of the bug reporter:

var myData = { }; // This should be a JSON object with your data
Buglife.addAttachmentWithJSON(myData, "MyData.json");

In some cases, you may wish to add an attachment on every invocation of the bug reporter; You can do so by subscribing to the BuglifeAttachmentRequest event:

import { NativeModules, NativeEventEmitter } from 'react-native';

const eventEmitter = new NativeEventEmitter(NativeModules.RNBuglife);

eventEmitter.addListener(Buglife.BuglifeAttachmentRequest, () => {
  var appState = {"awesomeness": "Insanely awesome", "volume": 11};
  Buglife.addAttachmentWithJSON(appState, "AppState.json");
});

For advanced usage & features (customization, user identification, etc), check out the official Buglife documentation.