@@ -253,7 +253,6 @@ function promptQuestionsResult(result) {
253253    writePodFile ( result ) ; 
254254    writeGoogleServiceCopyHook ( ) ; 
255255    writeBuildscriptHookForCrashlytics ( isSelected ( result . crashlytics ) ) ; 
256-     activateIOSCrashlyticsFramework ( isSelected ( result . crashlytics ) ) ; 
257256    activateIOSMLKitCameraFramework ( isSelected ( result . ml_kit ) ) ; 
258257  } 
259258
@@ -319,14 +318,6 @@ function activateIOSMLKitCameraFramework(enable) {
319318  } 
320319} 
321320
322- function  activateIOSCrashlyticsFramework ( enable )  { 
323-   if  ( enable  &&  fs . existsSync ( path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework-disabled' ) ) )  { 
324-     fs . renameSync ( path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework-disabled' ) ,  path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework' ) ) ; 
325-   }  else  if  ( ! enable  &&  fs . existsSync ( path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework' ) ) )  { 
326-     fs . renameSync ( path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework' ) ,  path . join ( directories . ios ,  'TNSCrashlyticsLogger.framework-disabled' ) ) ; 
327-   } 
328- } 
329- 
330321function  askSaveConfigPrompt ( )  { 
331322  prompt . get ( { 
332323    name : 'save_config' , 
@@ -356,10 +347,10 @@ function writePodFile(result) {
356347// The MLVision pod requires a minimum of iOS 9, otherwise the build will fail 
357348( isPresent ( result . ml_kit )  ? ``  : `#` )  +  `platform :ios, '9.0' 
358349
359- `  +  ( ! isSelected ( result . external_push_client_only )  ? ``  : `#` )  +  `pod 'Firebase/Core', '~>6.16 .0' 
350+ `  +  ( ! isSelected ( result . external_push_client_only )  ? ``  : `#` )  +  `pod 'Firebase/Core', '~>6.34 .0' 
360351
361352# Analytics 
362- `  +  ( isSelected ( result . analytics )  ||  ( ! isSelected ( result . external_push_client_only )  &&  ! isPresent ( result . analytics ) )  ? ``  : `#` )  +  `pod 'Firebase/Analytics' 
353+ `  +  ( isSelected ( result . analytics )  ||  isSelected ( result . crashlytics )   ||   ( ! isSelected ( result . external_push_client_only )  &&  ! isPresent ( result . analytics ) )  ? ``  : `#` )  +  `pod 'Firebase/Analytics' 
363354
364355# Authentication 
365356`  +  ( isSelected ( result . authentication )  ||  ( ! isSelected ( result . external_push_client_only )  &&  ! isPresent ( result . external_push_client_only ) )  ? ``  : `#` )  +  `pod 'Firebase/Auth' 
@@ -377,8 +368,7 @@ function writePodFile(result) {
377368`  +  ( isSelected ( result . performance_monitoring )  ? ``  : `#` )  +  `pod 'Firebase/Performance' 
378369
379370# Crashlytics 
380- `  +  ( isSelected ( result . crashlytics )  ? ``  : `#` )  +  `pod 'Fabric' 
381- `  +  ( isSelected ( result . crashlytics )  ? ``  : `#` )  +  `pod 'Crashlytics' 
371+ `  +  ( isSelected ( result . crashlytics )  ? ``  : `#` )  +  `pod 'Firebase/Crashlytics' 
382372`  +  ( ! isSelected ( result . crashlytics )  ? ``  : ` 
383373# Crashlytics works best without bitcode 
384374post_install do |installer| 
@@ -428,7 +418,7 @@ end`) + `
428418`  +  ( isSelected ( result . facebook_auth )  ? ``  : `#` )  +  `pod 'FBSDKLoginKit' 
429419
430420# Google Authentication 
431- `  +  ( isSelected ( result . google_auth )  ? ``  : `#` )  +  `pod 'GoogleSignIn', '~> 5.0'` ) ; 
421+ `  +  ( isSelected ( result . google_auth )  ? ``  : `#` )  +  `pod 'GoogleSignIn', '~> 5.0.2 '` ) ; 
432422    console . log ( 'Successfully created iOS (Pod) file.' ) ; 
433423  }  catch  ( e )  { 
434424    console . log ( 'Failed to create iOS (Pod) file.' ) ; 
@@ -465,7 +455,7 @@ const pattern3 = /\\n\\s*\\/\\/Crashlytics 3 BEGIN[\\s\\S]*\\/\\/Crashlytics 3 E
465455const string1 = \` 
466456//Crashlytics 1 BEGIN 
467457#else 
468- # import <Crashlytics/CLSLogging.h> 
458+ @ import FirebaseCrashlytics; 
469459#endif 
470460//Crashlytics 1 END 
471461\`; 
@@ -475,7 +465,7 @@ const string2 = \`
475465#if DEBUG 
476466#else 
477467static int redirect_cls(const char *prefix, const char *buffer, int size) { 
478-   CLSLog( @"%s: %.*s", prefix, size, buffer) ; 
468+   [[FIRCrashlytics crashlytics] logWithFormat: @"%s: %.*s", prefix, size, buffer] ; 
479469  return size; 
480470} 
481471
@@ -527,7 +517,7 @@ module.exports = function($logger, $projectData, hookArgs) {
527517
528518            // Xcode 10 requires 'inputPaths' set, see https://firebase.google.com/docs/crashlytics/get-started 
529519            var options = { 
530-               shellPath: '/bin/sh', shellScript: '\"\${PODS_ROOT}/Fabric /run\"', 
520+               shellPath: '/bin/sh', shellScript: '\"\${PODS_ROOT}/FirebaseCrashlytics /run\"', 
531521              inputPaths: ['"\$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)\"'] 
532522            }; 
533523
@@ -660,7 +650,7 @@ dependencies {
660650    `  +  ( isSelected ( result . performance_monitoring )  ? ``  : `//` )  +  ` implementation "com.google.firebase:firebase-perf:19.0.5" 
661651
662652    // Crashlytics 
663-     `  +  ( isSelected ( result . crashlytics )  ? ``  : `//` )  +  ` implementation "com.crashlytics.sdk.android: crashlytics:2.10.1 " 
653+     `  +  ( isSelected ( result . crashlytics )  ? ``  : `//` )  +  ` implementation "com.google.firebase:firebase- crashlytics:17.2.2 " 
664654
665655    // Cloud Messaging (FCM) 
666656    `  +  ( isSelected ( result . messaging )  ||  isSelected ( result . external_push_client_only )  ? ``  : `//` )  +  ` implementation "com.google.firebase:firebase-messaging:20.1.0" 
@@ -705,7 +695,7 @@ dependencies {
705695apply plugin: "com.google.gms.google-services" 
706696
707697// Crashlytics 
708- `  +  ( isSelected ( result . crashlytics )  ? ``  : `//` )  +  `apply plugin: "io.fabric " 
698+ `  +  ( isSelected ( result . crashlytics )  ? ``  : `//` )  +  `apply plugin: "com.google.firebase.crashlytics " 
709699` ) ; 
710700    console . log ( 'Successfully created Android (include.gradle) file.' ) ; 
711701  }  catch  ( e )  { 
@@ -961,27 +951,30 @@ module.exports = function($logger, $projectData) {
961951        if (fs.existsSync(projectBuildGradlePath)) { 
962952            let buildGradleContent = fs.readFileSync(projectBuildGradlePath).toString(); 
963953
964-             if (buildGradleContent.indexOf("fabric.io ") === -1) { 
954+             if (buildGradleContent.indexOf(" google()\\n ") === -1) { 
965955                let repositoriesNode = buildGradleContent.indexOf("repositories", 0); 
966956                if (repositoriesNode > -1) { 
967957                    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.28.0"\\n' + buildGradleContent.substr(dependenciesNode - 1); 
958+                     buildGradleContent = buildGradleContent.substr(0, repositoriesNode - 1) + '\\t\\tgoogle()\\n' + buildGradleContent.substr(repositoriesNode - 1); 
976959                } 
977960
978-             } else if (buildGradleContent.indexOf("https://dl.bintray.com/android/android-tools") === -1) { 
961+             } 
962+              
963+             if (buildGradleContent.indexOf("https://dl.bintray.com/android/android-tools") === -1) { 
979964                let repositoriesNode = buildGradleContent.indexOf("repositories", 0); 
980965                if (repositoriesNode > -1) { 
981966                    repositoriesNode = buildGradleContent.indexOf("}", repositoriesNode); 
982967                    buildGradleContent = buildGradleContent.substr(0, repositoriesNode - 1) + '\\t\\tmaven { url "https://dl.bintray.com/android/android-tools" }\\n' + buildGradleContent.substr(repositoriesNode - 1); 
983968                } 
984969            } 
970+              
971+             if (buildGradleContent.indexOf("com.google.firebase:firebase-crashlytics-gradle") === -1) { 
972+               let dependenciesNode = buildGradleContent.indexOf("dependencies", 0); 
973+               if (dependenciesNode > -1) { 
974+                   dependenciesNode = buildGradleContent.indexOf("}", dependenciesNode); 
975+                   buildGradleContent = buildGradleContent.substr(0, dependenciesNode - 1) + '	    classpath "com.google.firebase:firebase-crashlytics-gradle:2.3.0"\\n' + buildGradleContent.substr(dependenciesNode - 1); 
976+               } 
977+             } 
985978
986979            let gradlePattern = /classpath ('|")com\\.android\\.tools\\.build:gradle:\\d+\\.\\d+\\.\\d+('|")/; 
987980            let googleServicesPattern = /classpath ('|")com\\.google\\.gms:google-services:\\d+\\.\\d+\\.\\d+('|")/; 
0 commit comments