Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fabric/Crashlytics on Android - How to have two different crashlytics projects with the same package name?

I am developing an Android application and I want to have two different projects in Crashlytics / Fabric (debug and release).

I know that this is possible by having two different package names, but in my case, the package name of these two build types have to be the same.

Is there any possibility to have two crashlytics projects with the same package name?

like image 345
Lukas Lechner Avatar asked Apr 27 '16 10:04

Lukas Lechner


2 Answers

Hello I also had same questions months ago and I solved it myself. Hope my answer will help you.

You need 2 organizations with different crashlyticsApiKey for each of your project on fabric.

Then on your build.gradle file you will define manifestPlaceHolders

debug {
        manifestPlaceholders = [crashlyticsApiKey: 'your_api_key_for_debug_project_here']
    }

release {
        manifestPlaceholders = [crashlyticsApiKey: 'your_api_key_for_release_project_here']
    }

Then you will put this variable on meta-data at your AndroidManifest.xml file

<meta-data
        android:name="io.fabric.ApiKey"
        android:value="${crashlyticsApiKey}" />

That's all, now build your project both for relase and debug, you will see your app will registered for 2 different fabric account with same package nam

like image 175
Emin Ayar Avatar answered Oct 18 '22 23:10

Emin Ayar


There is also an option where you do not need to create multiple organizations. You can use the Fabric.Builder with appIdentifier(java.lang.String appIdentifier).

The only thing to do is replace the Crashlytics initialization from the documentation

Fabric.with(this, new Crashlytics());

with something like this:

final String trackingId = BuildConfig.APPLICATION_ID + ".tv";
Fabric fabric = new Fabric.Builder(this).kits(new Crashlytics()).appIdentifier(trackingId).build();
Fabric.with(fabric);

The second snippet uses projects APPLICATION_ID (package name) and adds a ".tv" to it.

NOTE: when you track your crashes this way, Crashlytics does not create the project by itself. It is important to have the project created manually (or having the project already created from another App with the same package name).

like image 11
Stefan Medack Avatar answered Oct 19 '22 00:10

Stefan Medack