Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit d323b28

Browse files
author
Paul Weber
committed
Update crashlytics integration to new firebase sdk.
1 parent 849db1d commit d323b28

File tree

5 files changed

+51
-45
lines changed

5 files changed

+51
-45
lines changed

publish/scripts/installer.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ dependencies {
660660
` + (isSelected(result.performance_monitoring) ? `` : `//`) + ` implementation "com.google.firebase:firebase-perf:19.0.5"
661661
662662
// Crashlytics
663-
` + (isSelected(result.crashlytics) ? `` : `//`) + ` implementation "com.crashlytics.sdk.android:crashlytics:2.10.1"
663+
` + (isSelected(result.crashlytics) ? `` : `//`) + ` implementation "com.google.firebase:firebase-crashlytics:17.2.2"
664664
665665
// Cloud Messaging (FCM)
666666
` + (isSelected(result.messaging) || isSelected(result.external_push_client_only) ? `` : `//`) + ` implementation "com.google.firebase:firebase-messaging:20.1.0"
@@ -705,7 +705,7 @@ dependencies {
705705
apply plugin: "com.google.gms.google-services"
706706
707707
// Crashlytics
708-
` + (isSelected(result.crashlytics) ? `` : `//`) + `apply plugin: "io.fabric"
708+
` + (isSelected(result.crashlytics) ? `` : `//`) + `apply plugin: "com.google.firebase.crashlytics"
709709
`);
710710
console.log('Successfully created Android (include.gradle) file.');
711711
} catch (e) {
@@ -956,23 +956,18 @@ var fs = require("fs");
956956
module.exports = function($logger, $projectData) {
957957
958958
return new Promise(function(resolve, reject) {
959-
$logger.info("Configure firebase");
959+
$logger.info("Configure firebase xxx");
960960
let projectBuildGradlePath = path.join($projectData.platformsDir, "android", "build.gradle");
961961
if (fs.existsSync(projectBuildGradlePath)) {
962962
let buildGradleContent = fs.readFileSync(projectBuildGradlePath).toString();
963963
964-
if (buildGradleContent.indexOf("fabric.io") === -1) {
964+
if (buildGradleContent.indexOf(" google()\\n") === -1) {
965+
$logger.info("got no google");
965966
let repositoriesNode = buildGradleContent.indexOf("repositories", 0);
966967
if (repositoriesNode > -1) {
968+
$logger.info("adding google");
967969
repositoriesNode = buildGradleContent.indexOf("}", repositoriesNode);
968-
buildGradleContent = buildGradleContent.substr(0, repositoriesNode - 1) + '\\t\\tmaven { url "https://maven.fabric.io/public" }\\n\\t\\tmaven { url "https://dl.bintray.com/android/android-tools" }\\n' + buildGradleContent.substr(repositoriesNode - 1);
969-
}
970-
971-
let dependenciesNode = buildGradleContent.indexOf("dependencies", 0);
972-
if (dependenciesNode > -1) {
973-
dependenciesNode = buildGradleContent.indexOf("}", dependenciesNode);
974-
// see https://docs.fabric.io/android/changelog.html
975-
buildGradleContent = buildGradleContent.substr(0, dependenciesNode - 1) + ' classpath "io.fabric.tools:gradle:1.26.1"\\n' + buildGradleContent.substr(dependenciesNode - 1);
970+
buildGradleContent = buildGradleContent.substr(0, repositoriesNode - 1) + '\\t\\tgoogle()\\n\\t\\tmaven { url "https://dl.bintray.com/android/android-tools" }\\n' + buildGradleContent.substr(repositoriesNode - 1);
976971
}
977972
978973
} else if (buildGradleContent.indexOf("https://dl.bintray.com/android/android-tools") === -1) {
@@ -982,6 +977,15 @@ module.exports = function($logger, $projectData) {
982977
buildGradleContent = buildGradleContent.substr(0, repositoriesNode - 1) + '\\t\\tmaven { url "https://dl.bintray.com/android/android-tools" }\\n' + buildGradleContent.substr(repositoriesNode - 1);
983978
}
984979
}
980+
981+
if (buildGradleContent.indexOf("com.google.firebase:firebase-crashlytics-gradle") === -1) {
982+
let dependenciesNode = buildGradleContent.indexOf("dependencies", 0);
983+
if (dependenciesNode > -1) {
984+
dependenciesNode = buildGradleContent.indexOf("}", dependenciesNode);
985+
// see https://docs.fabric.io/android/changelog.html
986+
buildGradleContent = buildGradleContent.substr(0, dependenciesNode - 1) + ' classpath "com.google.firebase:firebase-crashlytics-gradle:2.3.0"\\n' + buildGradleContent.substr(dependenciesNode - 1);
987+
}
988+
}
985989
986990
let gradlePattern = /classpath ('|")com\\.android\\.tools\\.build:gradle:\\d+\\.\\d+\\.\\d+('|")/;
987991
let googleServicesPattern = /classpath ('|")com\\.google\\.gms:google-services:\\d+\\.\\d+\\.\\d+('|")/;

src/crashlytics/crashlytics.android.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,78 @@
11
import { ENABLE_CRASHLYTICS_HINT } from "./crashlytics-common";
22
import * as appModule from 'tns-core-modules/application';
33

4+
45
declare const com: any;
56

67
export function sendCrashLog(exception: any /* java.lang.Exception */): void {
78
if (isCrashlyticsAvailable()) {
8-
com.crashlytics.android.Crashlytics.logException(exception);
9+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().recordException(exception);
910
}
1011
}
1112

1213
export function log(msg: string, tag?: string, priority?: number): void {
1314
if (isCrashlyticsAvailable()) {
1415
if (tag && priority) {
15-
com.crashlytics.android.Crashlytics.log(priority, tag, msg);
16+
const fullMessage = priority + '/' + tag + ': ' + msg;
17+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().log(fullMessage);
1618
} else {
17-
com.crashlytics.android.Crashlytics.log(msg);
19+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().log(msg);
1820
}
1921
}
2022
}
2123

2224
export function setString(key: string, value: string): void {
2325
if (isCrashlyticsAvailable()) {
24-
com.crashlytics.android.Crashlytics.setString(key, value);
26+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setCustomKey(key, value);
2527
}
2628
}
2729

2830
export function setBool(key: string, value: boolean): void {
2931
if (isCrashlyticsAvailable()) {
30-
com.crashlytics.android.Crashlytics.setBool(key, value);
32+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setCustomKey(key, value);
3133
}
3234
}
3335

3436
export function setFloat(key: string, value: number): void {
3537
if (isCrashlyticsAvailable()) {
36-
com.crashlytics.android.Crashlytics.setFloat(key, value);
38+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setCustomKey(key, value);
3739
}
3840
}
3941

4042
export function setInt(key: string, value: number): void {
4143
if (isCrashlyticsAvailable()) {
42-
com.crashlytics.android.Crashlytics.setInt(key, value);
44+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setCustomKey(key, value);
4345
}
4446
}
4547

4648
export function setDouble(key: string, value: number): void {
4749
if (isCrashlyticsAvailable()) {
48-
com.crashlytics.android.Crashlytics.setDouble(key, value);
50+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setCustomKey(key, value);
4951
}
5052
}
5153

5254
export function setUserId(id: string): void {
5355
if (isCrashlyticsAvailable()) {
54-
com.crashlytics.android.Crashlytics.setUserIdentifier(id);
56+
com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance().setUserId(id);
5557
}
5658
}
5759

5860
export function crash(): void {
5961
if (isCrashlyticsAvailable()) {
60-
com.crashlytics.android.Crashlytics.getInstance().crash();
62+
throw new java.lang.RuntimeException('Test Crash');
6163
}
6264
}
6365

6466
export function setCrashlyticsCollectionEnabled(enabled: boolean): void {
65-
if (isCrashlyticsAvailable()) {
66-
io.fabric.sdk.android.Fabric.with(
67-
appModule.getNativeApplication(),
68-
[new com.crashlytics.android.Crashlytics()]);
69-
}
67+
// if (isCrashlyticsAvailable()) {
68+
// io.fabric.sdk.android.Fabric.with(
69+
// appModule.getNativeApplication(),
70+
// [new com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance()()]);
71+
// }
7072
}
7173

7274
function isCrashlyticsAvailable(): boolean {
73-
if (typeof (com.crashlytics) === "undefined" || typeof (com.crashlytics.android.Crashlytics) === "undefined") {
75+
if (typeof (com.google.firebase.crashlytics.FirebaseCrashlytics) === "undefined" || typeof (com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance()) === "undefined") {
7476
console.log(ENABLE_CRASHLYTICS_HINT);
7577
return false;
7678
}

src/crashlytics/crashlytics.ios.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ export function setUserId(id: string): void {
5353
}
5454

5555
export function crash(): void {
56-
if (isCrashlyticsAvailable()) {
57-
Crashlytics.sharedInstance().crash();
58-
}
59-
Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
56+
// if (isCrashlyticsAvailable()) {
57+
// Crashlytics.sharedInstance().crash();
58+
// }
59+
// Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
6060
}
6161

6262
export function setCrashlyticsCollectionEnabled(enabled: boolean): void {
63-
if (isCrashlyticsAvailable()) {
64-
Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
65-
}
63+
// if (isCrashlyticsAvailable()) {
64+
// Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
65+
// }
6666
}
6767

6868
function isCrashlyticsAvailable(): boolean {

src/firebase.android.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,11 @@ firebase.init = arg => {
307307
}
308308

309309
// note that this only makes sense if crash reporting was disabled in AndroidManifest.xml
310-
if (arg.crashlyticsCollectionEnabled && typeof (com.crashlytics) !== "undefined" && typeof (com.crashlytics.android.Crashlytics) !== "undefined") {
311-
io.fabric.sdk.android.Fabric.with(
312-
appModule.android.context || appModule.getNativeApplication(),
313-
[new com.crashlytics.android.Crashlytics()]);
314-
}
310+
// if (arg.crashlyticsCollectionEnabled && typeof (com.crashlytics) !== "undefined" && typeof (com.google.firebase.crashlytics.FirebaseCrashlytics) !== "undefined") {
311+
// io.fabric.sdk.android.Fabric.with(
312+
// appModule.android.context || appModule.getNativeApplication(),
313+
// [new com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance()]);
314+
// }
315315

316316
if (typeof (com.google.firebase.database) !== "undefined" && typeof (com.google.firebase.database.ServerValue) !== "undefined") {
317317
firebase.ServerValue = {

src/firebase.ios.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,9 @@ firebase.init = arg => {
344344
}
345345
}
346346

347-
if (arg.crashlyticsCollectionEnabled && typeof (Crashlytics) !== "undefined") {
348-
Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
349-
}
347+
// if (arg.crashlyticsCollectionEnabled && typeof (Crashlytics) !== "undefined") {
348+
// Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));
349+
// }
350350

351351
if (typeof (FIRDatabase) !== "undefined") {
352352
if (arg.persist) {
@@ -947,11 +947,11 @@ firebase.login = arg => {
947947
appleIDRequest.nonce = sha256Nonce;
948948

949949
const authorizationController = ASAuthorizationController.alloc().initWithAuthorizationRequests([appleIDRequest]);
950-
const delegate = ASAuthorizationControllerDelegateImpl.createWithOwnerAndResolveReject(this, resolve, reject);
950+
const delegate = ASAuthorizationControllerDelegateImpl.createWithOwnerAndResolveReject(this as any, resolve, reject);
951951
CFRetain(delegate);
952952
authorizationController.delegate = delegate;
953953

954-
authorizationController.presentationContextProvider = ASAuthorizationControllerPresentationContextProvidingImpl.createWithOwnerAndCallback(this);
954+
authorizationController.presentationContextProvider = ASAuthorizationControllerPresentationContextProvidingImpl.createWithOwnerAndCallback(this as any);
955955

956956
authorizationController.performRequests();
957957

0 commit comments

Comments
 (0)