react-native-hockeyapp
HockeyApp integration for React Native.
Requirements
- iOS 7+
- Android
- React Native >0.14
- CocoaPods
Installation
npm install react-native-hockeyapp --save
iOS
You will need:
CocoaPods (Setup)
Podfile
Add to your ios/Podfile
:
pod "HockeySDK"
Add the RNHockeyApp/ folter to your project
Drag-and-drop from ./node_modules/react-native-hockeyapp/RNHockeyApp folder to your Project > Libraries.
Android
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')
...
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'net.hockeyapp.android:HockeySDK:3.7.0-rc.1' // <--- 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.14.+"
compile project(":react-native-hockeyapp") // <--- add this
}
<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 com.slowpath.hockeyapp.RNHockeyAppPackage;
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new RNHockeyAppPackage(this))
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "AndroidRNSample", null);
setContentView(mReactRootView);
}
......
}
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();
}
You have available these methods:
HockeyApp.configure(HOCKEY_APP_ID:string, autoSendCrashReports:boolean = true);
HockeyApp.start();
HockeyApp.checkForUpdate();
HockeyApp.feedback();
HockeyApp.generateTestCrash();