Handling App URLs in nativescript apps
Clone or download
hypery2k fix(error-handling): Disable throwing for now (see #134)
BREAKING CHANGE: Error Handler will not rethrow error!!
Latest commit e6d0329 Aug 5, 2018

README.md

NativeScript Fabric Plugin apple android

Greenkeeper badge Build Status Donate with Bitcoin

npm version Maintainability

NPM

Feel free to donate

Or donate Bitcoins: bitcoin:3NKtxw1SRYgess5ev4Ri54GekoAgkR213D

Bitcoin

Also via greenaddress

Usage

Installation

Go to Crashlytics and pick of the needed API-Key and API-Secret:

Create a file fabric.json in the project root folder and add the API-Key and API-Secret:

{
    "using_ios": true,
    "using_android": true,
    "api_key": "...",
    "api_secret": "..."
}
$ tns plugin add nativescript-fabric

Or if you want to use the development version (nightly build), which maybe not stable!:

$ tns plugin add nativescript-fabric@next

Android

Add the API-Key to your AndroidManifest.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="__PACKAGE__" android:versionCode="385" android:versionName="1.0.14">
 ....
  <application android:name="com.tns.NativeScriptApplication" android:allowBackup="true" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/AppTheme">
    ...
    <meta-data android:name="io.fabric.ApiKey" android:value="**<API-KEY>**"/>
  </application>
</manifest>

iOS

No further confiugration needed

Additional information

Android

For more details see fabric.io/kits/android/crashlytics.

iOS

For more details see fabric.io/kits/ios/crashlytics.

API

Init the plugin in your app (for angular apps use main.ts):

import { Fabric } from 'nativescript-fabric';
Fabric.init();

Afterwards you can use the instance methods for logging (general error logging is already added):

  • Fabric.logSignUp(method: string, success: boolean);
  • Fabric.logLogin(method: string, success: boolean);
  • Fabric.logContentView(id: string, name: string, type: string)
  • Fabric.logCustomEvent(withName: string, customAttributes: Map<String, String>)
  • Fabric.logError(error: any, msg?: string)

Angular

import { FabricModule } from 'nativescript-fabric/angular';

NgModule({
  ...
  imports: [
    FabricModule.forRoot()
  ],

Known Issues

com.android.ide.common.process.ProcessException

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithDexForF0F1F2F3F4F5Debug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: Cannot merge new index 69013 into a non-jumbo instruction!nto a non-jumbo instruction!

set the following in your app.gradle:

android {
    ...
    dexOptions {
        jumboMode true
    }

}

XML Parsing error

Error:/app/build/intermediates/res/merged/debug/values/com_crashlytics_build_id.xml uncompiled XML file passed as argument. Must be compiled first into .flat file.

Try adding:

android.enableAapt2 = false

to your gradle.properties file.