iOS cocoapods upgrade from Fabric Crashlytics to Firebase Crashlytics - ios

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?

Have your tried pod 'Firebase/Analytics' to get Google Analytics
https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=ios&authuser=0
Fabric is phasing out
https://developers.google.com/analytics/devguides/collection/ios/v3?ver=swift

Related

No such module 'Eureka' error while using 'GooglePlacesRow' in Pods

Previously in project, Eureka and GooglePlacesRow were directly embedded.
Now, I am trying to update the Eureka and GooglePlacesRow to latest version using pods.
But this is causing error as "No such module 'Eureka'" only in the files related to GooglePlacesRow.
Xcode version 10.2.1
Swift Version 5
Eureka Version 5.0.0
GooglePlacesRow 3.2.0
I tried the following things:
Clean and build
Deleting Derived data and then build
Checked for Framework Search path as well.
My Podfile:
platform :ios, '11.0'
inhibit_all_warnings!
target 'ProjectName' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for ProjectName
pod 'SnapKit', '~> 4.2.0'
pod 'KeychainAccess', '~> 3.2.0'
pod 'Just', '~> 0.7.1'
pod 'SwiftyJSON', '~> 5.0.0'
pod 'PKHUD', '~> 5.2.1'
pod 'GSMessages', '~> 1.7.2'
pod 'RealmSwift', '~> 3.15.0'
pod 'Pages', '~> 2.0.2'
pod 'IQKeyboardManagerSwift', '~> 6.3.0'
pod 'Firebase/Core', '~> 5.20.2'
pod 'Firebase/Messaging', '~> 5.20.2'
pod 'Firebase/Crash', '~> 5.20.02'
pod 'GradientCircularProgress', :git =>
'https://github.com/keygx/GradientCircularProgress'
pod 'Zip', '~> 1.1.0'
pod 'GRDB.swift', '~> 3.7.0'
pod 'Localize-Swift', '~> 2.0.0'
#pod 'Eureka', '~> 5.0.0'
pod 'GooglePlacesRow', '~> 3.2.0'
end
Thanks in Advance ☺️

Getting error after pod update to FBSDK 5.0.0 in x code 10.1

I am trying to update my facebook SDK to 5.0.0 but after installing pod update, I keep getting this error in FBSDK Login Kit.
This is my pod file.
pod 'FacebookSDK', '~> 5.0.0'
pod 'FacebookSDK/LoginKit', '~> 5.0.0'
pod 'FacebookSDK/ShareKit', '~> 5.0.0'
pod 'FacebookSDK/PlacesKit', '~> 5.0.0'
pod 'FBSDKLoginKit', '~> 5.0.0'
Anyone please help me to solve this problem.
Now I got solution.
First I install FBSDK kits for version 5.0.2 like
pod 'FBSDKLoginKit', '~> 5.0.2'
pod 'FBSDKCoreKit', '~> 5.0.2'
pod 'FBSDKShareKit', '~> 5.0.2'
After you would see
Bolt.h file not found
Remove that import bolt.h line, and replace
[FBSDKBasicUtility objectForJSONString ...]
with
[FBSDKInternalUtility objectForJSONString ...].
When you are done change some codes that they suggest to current FBSDK version acceptable codes and it solved.
You have getting wrong way. Sometimes pod is updated but some files may not get updated. So, you need to first uninstall FBSDK pod by removing
pod 'FacebookSDK', '~> 5.0.0'
pod 'FacebookSDK/LoginKit', '~> 5.0.0'
pod 'FacebookSDK/ShareKit', '~> 5.0.0'
pod 'FacebookSDK/PlacesKit', '~> 5.0.0'
pod 'FBSDKLoginKit', '~> 5.0.0'
from pod file, and then run following command. You can also comment above pod and run command.
pod install
This will clear your old pod files.
Again, add above pods in pod file and run same command
pod install
will fix your issues.

Unable to satisfy dependencies required by Mantle and Overcoat in Podfile

I added the following to my Podfile in order to install Mantle and Overcoat
pod 'Mantle', '~> 2.0.5'
pod 'Overcoat', '~> 3.1.1'
and ran pod install. At which point it complained :
AFNetworking/Serialization required by Overcoat/Core (3.1.1)
So I added :
pod 'AFNetworking', '~> 2.6.0'
and ran pod install
At which point it now complains :
AFNetworking (~> 2.6.0) required by Podfile
AFNetworking (= 1.3.4) required by Podfile.lock
How do I resolve these seemingly unresolvable dependencies?

CocoaPods update is downgrading an installed pod

When I run pod update, MMDrawerController is being downgraded from the currently installed version (0.5.7) to an older one (0.4.0).
Here is the contents of my Podfile:
source 'https://github.com/CocoaPods/Specs.git'
link_with 'OpenEye-Mobile', 'SecurityStar Tests'
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.5.0'
pod 'MBProgressHUD', '~> 0.9'
pod 'MMDrawerController'
pod 'MMDrawerController+Storyboard', '~> 0.0.1'
pod 'UIAlertView+Blocks', '~> 0.8.1'
target :"SecurityStar Tests" do
pod 'OCMock', '~> 3.1.1'
end
I just updated the cocoapods gem from v. 0.34.4 to 0.35.0. The only change I have made to the Podfile is updating AFNetworking from 2.3.1 to 2.5.0. If I try to explicitly specify MMDrawerController as v. 0.5.7, I get a dependency error:
- `MMDrawerController (= 0.5.7)` required by `Podfile`
- `MMDrawerController (~> 0.4.0)` required by `MMDrawerController+Storyboard (0.0.1)`
What's going on here? Why is this a problem all of a sudden? Did something change in cocoapods 0.35? Is there a way I can force MMDrawerController+Storyboard to be OK with MMDrawerController (= 0.5.7)?
SOLUTION 1 is specify same range as in MMDrawerController+Storyboard
pod 'MMDrawerController', '~> 0.4.0'
SOLUTION 2 is to update MMDrawerController+Storyboard podspec so that it will use the latest version.
EXPLANATION
The problem is as it says: dependency error.
This line in a podfile means take the latest (for 04.02 is 0.5.7):
pod 'MMDrawerController'
While this one demands 'MMDrawerController+Storyboard' :
pod 'MMDrawerController+Storyboard', '~> 0.0.1'
which, in turn, specifies in it's podspec as a dependency:
s.dependency 'MMDrawerController', '~> 0.4.0'
'~> 0.4.0' means that it can use versions 0.4.0 - 0.4.9 and there is no intersection of 0.5.7 with 0.4.0 - 0.4.9.

Pod install issue

I have Podfile that contains this lines
platform :ios, '5.0'
pod 'AdMob', '~> 6.5.0'
pod 'FlurrySDK', '~> 4.2.3'
pod 'RevMobSDK'
when I try to run pod install i get this error below:
Unable to find a specification for AdMob (= 6.5.0).
AdMob is now in a different spec, maintained by Google:
-> Google-Mobile-Ads-SDK (6.6.1)
Monetize your mobile applications with Google ads
pod 'Google-Mobile-Ads-SDK', '~> 6.6.1'
- Homepage: https://developers.google.com/mobile-ads-sdk/
- Source: http://dl.google.com/googleadmobadssdk/googlemobileadssdkios-6.6.1.zip
- Versions: 6.6.1, 6.6.0 [master repo]

Resources