2016-04-27 9 views
4

Ich entwickle eine Android-Anwendung und möchte zwei verschiedene Projekte in Crashlytics/Fabric (Debug und Release) haben.Fabric/Crashlytics auf Android - Wie haben Sie zwei verschiedene Crashlytics-Projekte mit demselben Paketnamen?

Ich weiß, dass dies möglich ist, indem Sie zwei verschiedene Paketnamen haben, aber in meinem Fall muss der Paketname dieser beiden Build-Typen identisch sein.

Gibt es eine Möglichkeit, zwei Crashlytics-Projekte mit demselben Paketnamen zu haben?

Antwort

11

Hallo Ich hatte vor Monaten auch dieselben Fragen und habe es selbst gelöst. Hoffe, meine Antwort wird dir helfen.

Sie benötigen 2 Organisationen mit unterschiedlichen crashlyticsApiKey für jedes Projekt auf Stoff.

Dann auf Ihrer build.gradle Datei finden Sie manifestPlaceHolders

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

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

definieren Dann werden Sie diese Variable setzen auf Meta-Daten zu Ihrer AndroidManifest.xml Datei

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

Das ist alles, jetzt Ihr Projekt bauen sowohl für relase und debug, Sie werden sehen, Ihre App wird für 2 verschiedene Fabric-Konto mit dem gleichen Paket nam registriert

+0

Wie kann ich diese API-Schlüssel finden? – lukle

+0

In Ihrem Fabric-Dashboard finden Sie Ihre API-Schlüssel für jedes Ihrer Projekte –

+0

Ich kann nur den API-Schlüssel für meine Organisation sehen ... Ich suchte nach anderen Projekten in meiner Organisation und sie alle beziehen sich auf den gleichen API-Schlüssel im Manifest Datei. Wie haben Sie es geschafft, unterschiedliche API-Schlüssel für jedes Projekt zu haben? – lukle

7

Es gibt auch eine Option, bei der Sie nicht mehrere Organisationen erstellen müssen. Sie können die Fabric.Builder mit appIdentifier(java.lang.String appIdentifier) verwenden.

Das einzige, was zu tun ist, um die Crashlytics Initialisierung vom

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

mit so etwas Dokumentation ersetzen:

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

Der zweite Code-Schnipsel verwendet Projekte APPLICATION_ID (Paketname) und fügt ein " .tv "dazu.

HINWEIS: Wenn Sie Ihre Abstürze auf diese Weise verfolgen, erstellt Crashlytics das Projekt nicht von selbst. Es ist wichtig, dass das Projekt manuell erstellt wird (oder das Projekt bereits von einer anderen App mit demselben Paketnamen erstellt wurde).

Verwandte Themen