0
votes

I'm working with an app that has uses Fabric Crashlytics and Google Analytics v3. These are the pods included in its podfile:

pod 'PromiseKit', '~> 4.4'
pod 'CryptoSwift', '~> 0.9.0'
pod 'Kingfisher', '~> 4.7.0'
pod 'KeychainAccess', '~> 3.1.1'
pod 'Google/Analytics', '~> 3.1.0'
pod 'Cosmos', '~> 15.0.0'
pod 'Alamofire', '~> 4.7.2'
pod 'FRHyperLabel', '~> 1.0.4'
pod 'RealmSwift', '~> 4.4.0'
pod 'Realm', '~> 4.4.0'
pod 'Fabric', '~> 1.9.0'
pod 'Crashlytics', '~> 3.12.0'
pod 'Bolts', '~> 1.9.0'
pod 'FBSDKCoreKit', '~> 4.36.0'
pod 'FacebookCore', '~> 0.3.3'
pod 'CleverTap-iOS-SDK', '~> 3.7.3'
pod 'Branch', '~> 0.29.3'
pod 'TPKeyboardAvoiding', '~> 1.3.2'
pod 'Firebase', '~> 3.17.0'
pod 'GoogleTagManager' , '~> 5.0.8'

I have to update Crahslytics from Fabric to Firebase before 15/November. I would like to change the app as less as possible, so I would like to keep using Google Analytics v3, the same versions, etc...

I've changed this:

pod 'Fabric', '~> 1.9.0'
pod 'Crashlytics', '~> 3.12.0'

to this:

pod 'Firebase/Crashlytics'

And run a pod update but got this error:

[!] CocoaPods could not find compatible versions for pod "Firebase/Crashlytics":
  In Podfile:
    Firebase/Crashlytics

None of your spec sources contain a spec satisfying the dependency: `Firebase/Crashlytics`.

This is due to a conflict with pod 'Firebase', '~> 3.17.0', so I removed the specific version and the podfile now looks like this:

pod 'Firebase/Crashlytics'
pod 'PromiseKit', '~> 4.4'
pod 'CryptoSwift', '~> 0.9.0'
pod 'Kingfisher', '~> 4.7.0'
pod 'KeychainAccess', '~> 3.1.1'
pod 'Google/Analytics', '~> 3.1.0'
pod 'Cosmos', '~> 15.0.0'
pod 'Alamofire', '~> 4.7.2'
pod 'FRHyperLabel', '~> 1.0.4'
pod 'RealmSwift', '~> 4.4.0'
pod 'Realm', '~> 4.4.0'
pod 'Bolts', '~> 1.9.0'
pod 'FBSDKCoreKit', '~> 4.36.0'
pod 'FacebookCore', '~> 0.3.3'
pod 'CleverTap-iOS-SDK', '~> 3.7.3'
pod 'Branch', '~> 0.29.3'
pod 'TPKeyboardAvoiding', '~> 1.3.2'
pod 'Firebase'
pod 'GoogleTagManager' , '~> 5.0.8'

Now the pod update works fine, it gives this log:

Analyzing dependencies
Downloading dependencies
Installing Bolts 1.9.1 (was 1.9.0)
Installing Firebase 3.6.0 (was 3.17.0)
Installing Firebase 6.33.0 (was 3.17.0)
Installing FirebaseAnalytics 3.4.2 (was 3.9.0)
Installing FirebaseCore 6.10.3 (was 3.6.0)
Installing FirebaseCoreDiagnostics (1.7.0)
Installing FirebaseCrashlytics (4.6.1)
Installing FirebaseInstallations (1.7.0)
Installing FirebaseInstanceID 1.0.9 (was 1.0.10)
Installing GoogleDataTransport (7.4.0)
Installing GoogleInterchangeUtilities (1.2.2)
Installing GoogleUtilities 1.3.2
Installing GoogleUtilities 6.7.2 (was 1.3.2)
Installing PromisesObjC (1.2.10)
Installing Realm 4.4.1 (was 4.4.0)
Installing RealmSwift 4.4.1 (was 4.4.0)
Installing SDWebImage 5.9.2 (was 5.6.1)
Installing TPKeyboardAvoiding 1.3.4 (was 1.3.3)
Installing nanopb (1.30906.0)
Removing Crashlytics
Removing Fabric
Removing GoogleToolboxForMac
Generating Pods project
Integrating client project

but when I compile the app I get the following error:

googleutilities/gulloggerlevel.h file not found

This error happens because Pods/GoogleUtilities has the content of its older version (1.3.2), not the newer one (6.7.2). How is this possible?

I've tried another thing:

  • I've removed from the Podfile the all pods related to Firebase and GoogleAnalytics and run a pod update.

  • I've added pod Firebase/Analytics and run a pod update. This creates the folder Pods/GoogleUtilities with the newer content (6.7.2 version).

  • I've added the rest of pods related to GoogleAnalytics. This overwrites the folder Pods/GoogleUtilities with the older content (1.3.2 version), so the googleutilities/gulloggerlevel.h file is not found again.

So is this the normal behavior? Is it possible to have in the same podfile pod Google/Analytics and pod Firebase/Crashlytics?

1

1 Answers