2016-04-27 5 views
4

私はAndroidアプリケーションを開発しており、Crashlytics/Fabric(デバッグとリリース)では2つの異なるプロジェクトが必要です。Androidのファブリック/クラッシュスティック - 同じパッケージ名の2つの異なるクラッシュサイクリングプロジェクトを持つ方法

これは2つの異なるパッケージ名を持つことで可能ですが、私の場合、これらの2つのビルドタイプのパッケージ名は同じでなければなりません。

同じパッケージ名を持つ2つのクラッシュサイクリングプロジェクトを持つ可能性はありますか?

答えて

11

こんにちは私も数か月前に同じ質問があり、私はそれを自分で解決しました。私の答えがあなたを助けることを願っています。

ファブリック上のプロジェクトごとに異なるcrashlyticsApiKeyの2つの組織が必要です。

その後、あなたのbuild.gradleファイルにあなたがmanifestPlaceHolders

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

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

を定義します次に、あなたの両方のためのプロジェクトをビルド今、すべてですあなたのAndroidManifest.xmlファイル

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

でのメタデータにこの変数を配置しますrelaseとdebugを実行すると、同じパッケージ名の2つの異なるファブリックアカウントに登録されたアプリが表示されます

+0

これらのAPIキーはどのようにして見つけることができますか? – lukle

+0

ファブリックダッシュボードでは、プロジェクトごとにAPIキーを見つけることができます –

+0

自分の組織のapiキーしか見ることができません...自分の組織内の他のプロジェクトを探しましたが、すべてマニフェストの同じapiキーを参照していますファイル。どのようにプロジェクトごとに異なるapiキーを持つことができましたか? – lukle

7

複数の組織を作成する必要がないオプションもあります。 Fabric.BuilderappIdentifier(java.lang.String appIdentifier)と一緒に使用できます。行うには

唯一のことは、このようなものでドキュメント

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

からCrashlyticsの初期化を置き換えている:

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

第二のスニペットは、プロジェクトAPPLICATION_ID(パッケージ名)を使用し、「追加します.tv "を付けてください。

注:この方法でクラッシュを追跡すると、Crashlyticsは単独でプロジェクトを作成しません。プロジェクトを手動で作成する(または、同じパッケージ名で別のアプリケーションからプロジェクトを作成しておく)ことは重要です。

関連する問題