HockeyApp integration for React Native.
- iOS 7+
- Android
- React Native >0.17
- CocoaPods
npm install react-native-hockeyapp --save
You will need:
CocoaPods (Setup)
Add to your ios/Podfile
:
pod "HockeySDK"
Run pod install
Drag-and-drop ./ios/Pods/Pods.xcodeproj into your Project > Libraries.
Drag-and-drop files from ./node_modules/react-native-hockeyapp/RNHockeyApp into your Project > Libraries.
If you wish to use Device UUID authentication or Web authentication, the following must be added to ios/AppDelegate.m
- (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;
}
- 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:3.7.0' // <--- add this
}
- 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") // <--- add this
}
- Manifest file
<application ..>
<activity android:name="net.hockeyapp.android.UpdateActivity" />
<activity android:name="net.hockeyapp.android.FeedbackActivity" />
</application>
- Register Module (in MainApplication.java)
import com.slowpath.hockeyapp.RNHockeyAppModule; // <--- import
import com.slowpath.hockeyapp.RNHockeyAppPackage; // <--- import
public class MainApplication extends Application implements ReactApplication {
......
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new RNHockeyAppPackage(MainApplication.this), // <------ add this line to yout MainApplication class
new MainReactPackage());
}
......
}
- 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:3.7.0' // <--- add this
}
- 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") // <--- add this
}
- Manifest file
<application ..>
<activity android:name="net.hockeyapp.android.UpdateActivity" />
<activity android:name="net.hockeyapp.android.FeedbackActivity" />
</application>
- Register Module (in MainActivity.java)
import com.slowpath.hockeyapp.RNHockeyAppModule; // <--- import
import com.slowpath.hockeyapp.RNHockeyAppPackage; // <--- import
public class MainActivity extends ReactActivity {
......
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new RNHockeyAppPackage(this), // <------ add this line to yout MainActivity class
new MainReactPackage());
}
......
}
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();
}
You have available these methods:
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:
- AuthenticationType.Anonymous - Anonymous Authentication
- AuthenticationType.EmailSecret - HockeyApp email & App Secret
- AuthenticationType.EmailPassword - HockeyApp email & password
- AuthenticationType.DeviceUUID - HockeyApp registered device UUID
- AuthenticationType.Web - HockeyApp Web Auth (iOS only)
See https://github.com/slowpath/react-native-hockeyapp/graphs/contributors