我已经使用ionic 3 app实施了Firebase插件。它工作正常。你能告诉我如何在这个插件中使用Crashlytics吗?根据该文档,它似乎适用于原生应用程序。那么我们怎么能用Ionic 3来做呢?
我们可以在离子应用中使用插件cordova-fabric-plugin。但似乎我们不再需要它了,因为关于本机应用程序文档的这个说明:请问任何指导?
注意:如果您要从Fabric Crashlytics升级,请删除Fabric AndroidManifest.xml中的API密钥。删除密钥的元数据标记, 应该有io.fabric.ApiKey和API密钥。
答案 0 :(得分:3)
理论上,您应该按照描述设置FabricPlugin。 (firebase所需的版本低于曾经包含的版本)
要设置离子,我建议您阅读以下问题:https://github.com/sarriaroman/FabricPlugin/issues/70
简短版本:然后创建一个自定义错误处理程序
{provide: ErrorHandler, useClass: FabricErrorHandler},
然后是您的自定义错误处理程序
import {Injectable} from "@angular/core";
import {IonicErrorHandler } from 'ionic-angular';
import * as stacktrace from 'stacktrace-js';
@Injectable()
export class FabricErrorHandler extends IonicErrorHandler {
constructor (public analytics: Analytics) {
super();
}
handleError(error) {
window.fabric.Crashlytics.addLog('crash triggered');
stacktrace.get().then(
trace => window.fabric.Crashlytics.endNonFatalCrash(error.message, trace)
);
super.handleError(error);
}
}
答案 1 :(得分:0)
引用此链接 https://fabric.io/kits/android/crashlytics/features
使用Ionic 3应用程序的Crashlytics
首先,按照他们的说法……安装IDE插件等。 现在。 Ionic将gradle用于其建筑物。您会期望安装立即生效,但不会成功。 Ionic / Cordova会覆盖“依赖项”部分中的build.gradle定义。
无论如何,首先打开build.gradle,然后在buildscript>存储库中(如果尚未存在)添加
jcenter()行家{url'https://maven.fabric.io/public'}
接下来,每个gradle版本都有3个依赖项。如果您知道您运行的是哪个版本,那就太好了。否则,将以下内容添加到所有这些内容中。 classpath'io.fabric.tools:gradle:1。+'
现在我们需要做的是扩展gradle的构建。 在您的android / ios目录中创建一个名为build-extras.gradle的文件。 在其中,我们需要定义存储库。
应用插件:'io.fabric'存储库{jcenter()maven {url'https://maven.fabric.io/public'}}}依赖项{// Crashlytics Kit编译('com.crashlytics.sdk.android:crashlytics:2.5.5 @aar'){传递= true}}
现在,尽管Fabric.io 79无法识别您的应用程序,但是当您运行或构建该应用程序时,它应该可以运行。 我们将需要安装Cordova插件, 我使用的是: https://www.npmjs.com/package/cordova-fabric-plugin 946
安装后,添加强制崩溃并重建和运行您的应用。
如果仍然无法正常运行,请确保您没有安装任何广告拦截软件。即使没有,也可以重新安装,并确保所有设置都已重置(IE AdAway会编辑您的主机文件,卸载它不会重置它们,您需要重置它们,然后才能卸载它们)。 / p>
希望这对其他遇到问题的人有所帮助。
编辑 当前,Crashlytics不支持自定义堆栈跟踪。所有崩溃都将来自Crashlytics / Fabric.io插件。您必须使用日志来指定错误。
答案 2 :(得分:-2)
Fabric目前不支持Unity以外的任何非本机平台。但是,正如@wodka所提到的,还有社区解决方法。