我正在开发一个Android应用程序,我想在Crashlytics / Fabric(调试和发布)中有两个不同的项目。
我知道这可以通过两个不同的包名来实现,但在我的情况下,这两种构建类型的包名必须相同。
是否有可能有两个具有相同包名的碰撞项目?
答案 0 :(得分:17)
您好我几个月前也有同样的问题,我自己也解决了。希望我的回答能帮到你。
对于您的每个项目,您需要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}" />
文件
angular.element(document).bind('mouseup', function(){
console.log('Hello!');
});
这就是全部,现在构建你的项目以进行重新调试和调试,你会发现你的应用程序将注册2个不同的结构帐户与相同的包nam
答案 1 :(得分:10)
还有一个选项,您无需创建多个组织。您可以将Fabric.Builder与appIdentifier(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
(包名称)并添加&#34; .tv&#34;它。
注意:当您以这种方式跟踪崩溃时,Crashlytics不会自行创建项目。手动创建项目(或者已经从具有相同包名称的另一个App创建项目)非常重要。