Fabric/Crashlytics on Android - 如何让两个不同的 crashlytics 项目具有相同的包名?

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

我正在开发一个 Android 应用程序,我想在 Crashlytics/Fabric 中有两个不同的项目(调试和发布)。

我知道这可以通过使用两个不同的包名称来实现,但就我而言,这两种构建类型的包名称必须相同。

是否有可能有两个具有相同包名的 crashlytics 项目?

你好,几个月前我也有同样的问题,我自己解决了。希望我的回答对您有所帮助。

您的每个 fabric 项目都需要 2 个不同 crashlyticsApiKey 的组织。

然后在 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}" />

就是这样,现在构建您的项目以进行发布和调试,您将看到您的应用程序将注册 2 个不同的 fabric 帐户并使用相同的包名称

还有一个选项不需要创建多个组织。您可以将 Fabric.BuilderappIdentifier(java.lang.String appIdentifier) 一起使用。

唯一要做的就是替换文档中的 Crashlytics 初始化

Fabric.with(this, new 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 不会自行创建项目。手动创建项目很重要(或者已经从另一个具有相同包名的应用程序创建了项目)。