react-native-hockeyapp

by martincik

HockeyApp integration for React Native with Android and iOS support

129 Stars 58 Forks Last release: over 4 years ago (0.3.0) MIT License 93 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

:exclamation: While I do not have the time to actively maintain RN-hockeyapp anymore, I am open to new maintainers taking the lead. If you would be interested, contact me at ladislav (at) benloop (dot) com. :exclamation:

react-native-hockeyapp

HockeyApp integration for React Native.

Requirements

  • iOS 7+
  • Android
  • React Native >0.17
  • CocoaPods

Installation

npm install react-native-hockeyapp --save

iOS

You will need:

CocoaPods (Setup)

Podfile

Add to your

ios/Podfile
:
ruby
pod "HockeySDK"

Run

pod install

Open

YourProject.xcworkspace

Add the RNHockeyApp library to your project

  • Drag-and-drop
    RNHockeyApp.xcodeproj
    from
    ./node_modules/react-native-hockeyapp/RNHockeyApp
    into your
    Project > Libraries
    .
  • Drag-and-drop
    libRNHockeyApp.a
    from
    Libraries/RNHockeyApp/Products
    into
    Linked Frameworks and Libraries

Changes to AppDelegate.m

If you wish to use Device UUID authentication or Web authentication, the following must be added to

ios/AppDelegate.m
```objective-c

import "RNHockeyApp.h"

  • (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if( [[BITHockeyManager sharedHockeyManager].authenticator handleOpenURL:url sourceApplication:sourceApplication annotation:annotation]) { return YES; }

/* Your own custom URL handlers */

return NO; } ``

You also need to add
RNHockeyApp
to
Build Settings > Search Paths > Header Search Paths
as a **
recursive
** search path, adding the following to both
Debug
and
Release
and ensuring
recursive` is selected (double click each line as opposed to editing it as text, and you'll see the dropdowns):
$(SRCROOT)/../node_modules/react-native-hockeyapp/RNHockeyApp

Android (React Native >= 0.29)

Google project configuration

  • In
    android/setting.gradle
...
include ':react-native-hockeyapp', ':app'
project(':react-native-hockeyapp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-hockeyapp/android')
  • In
    android/build.gradle
...
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.3.1'
    classpath 'net.hockeyapp.android:HockeySDK:4.1.0' // 
  • In
    android/app/build.gradle
apply plugin: "com.android.application"
...
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:0.29.+"
    compile project(":react-native-hockeyapp") // 
  • Manifest file

    xml
    
    
    
    
    
  • Register Module (in MainApplication.java)

import com.slowpath.hockeyapp.RNHockeyAppModule; //  getPackages() {
    return Arrays.asList(
      new RNHockeyAppPackage(MainApplication.this), // 

Android (React Native 0.17 - 0.28) - Only react-native-hockeyapp:0.4.2 or less

Google project configuration

  • In
    android/setting.gradle
...
include ':react-native-hockeyapp', ':app'
project(':react-native-hockeyapp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-hockeyapp/android')
  • In
    android/build.gradle
...
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.3.1'
    classpath 'net.hockeyapp.android:HockeySDK:4.1.2' // 
  • In
    android/app/build.gradle
apply plugin: "com.android.application"
...
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:0.17.+"
    compile project(":react-native-hockeyapp") // 
  • Manifest file

    xml
    
    
    
    
    
  • Register Module (in MainActivity.java)

import com.slowpath.hockeyapp.RNHockeyAppModule; //  getPackages() {
    return Arrays.asList(
      new RNHockeyAppPackage(this), // 

Usage

From your JS files for both iOS and Android:

var HockeyApp = require('react-native-hockeyapp');

componentWillMount() { HockeyApp.configure(HOCKEY_APP_ID, true); }

componentDidMount() { HockeyApp.start(); HockeyApp.checkForUpdate(); // optional }

You have available these methods:

js
HockeyApp.configure(HockeyAppId: string, autoSendCrashReports: boolean = true, authenticationType: AuthenticationType = AuthenticationType.Anonymous, appSecret: string = '', ignoreDefaultHandler: string = false); // Configure the settings
HockeyApp.start(); // Start the HockeyApp integration
HockeyApp.checkForUpdate(); // Check if there's new version and if so trigger update
HockeyApp.feedback(); // Ask user for feedback.
HockeyApp.addMetadata(metadata: object); // Add metadata to crash report.  The argument must be an object with key-value pairs.
HockeyApp.generateTestCrash(); // Generate test crash. Only works in no-debug mode.
The following authentication methods are available:
  1. AuthenticationType.Anonymous - Anonymous Authentication
  2. AuthenticationType.EmailSecret - HockeyApp email & App Secret
  3. AuthenticationType.EmailPassword - HockeyApp email & password
  4. AuthenticationType.DeviceUUID - HockeyApp registered device UUID
  5. AuthenticationType.Web - HockeyApp Web Auth (iOS only)

Contributions

See https://github.com/slowpath/react-native-hockeyapp/graphs/contributors

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.