Trouble in resolving dependencies conflict for Firebase subspecs pod - ios

I am trying to fix the versions of my firebase subspec pods in order to keep the Podfile.lock to be constant throughout the team, but there is some error being popped up while installing the pods using pod install. I have checked the latest versions of all the subspecs using pod outdated command, and then put the desired versions in front of the subspecs.
I have tried running pod repo update, but even that didn't work
Podfile
pod 'Firebase','6.23.0'
pod 'Firebase/Analytics'
pod 'Firebase/Messaging'
pod 'Firebase/DynamicLinks'
pod 'FirebaseRemoteConfig','4.4.9'
Error Log while running pod install
[!] CocoaPods could not find compatible versions for pod
"FirebaseAnalytics":
In snapshot (Podfile.lock):
FirebaseAnalytics (= 6.3.0, ~> 6.0)
In Podfile:
Firebase/Analytics was resolved to 6.23.0, which depends on
Firebase/Core (= 6.23.0) was resolved to 6.23.0, which depends on
FirebaseAnalytics (= 6.4.2)
Specs satisfying the `FirebaseAnalytics (= 6.3.0, ~> 6.0),
FirebaseAnalytics (= 6.4.2)` dependency were found, but they required
a higher minimum deployment target.
When i run pod outdated, I get the following versions of all the subspecs, so accordingly I gave the versions in the Podfile.
- Firebase 6.18.0 -> 6.23.0 (latest version 6.23.0)
- FirebaseABTesting 3.1.2 -> 3.2.0 (latest version 3.2.0)
- FirebaseAnalytics 6.3.0 -> 6.4.2 (latest version 6.4.2)
- FirebaseCore 6.6.3 -> 6.6.7 (latest version 6.6.7)
- FirebaseCoreDiagnostics 1.2.1 -> 1.2.4 (latest version 1.2.4)
- FirebaseDynamicLinks 4.0.7 -> 4.0.8 (latest version 4.0.8)
- FirebaseInstallations 1.1.0 -> 1.2.0 (latest version 1.2.0)
- FirebaseInstanceID 4.3.2 -> 4.3.4 (latest version 4.3.4)
- FirebaseMessaging 4.3.0 -> 4.3.1 (latest version 4.3.1)
- FirebaseRemoteConfig 4.4.8 -> 4.4.9 (latest version 4.4.9)

I think you're confusing pods and sub-specs.
Firebase is at version 6.23.0 (see its podspec). This Pod has a sub-spec called "Firebase/RemoteConfig" which pulls in another Pod called FirebaseRemoteConfig, which in turn has version 4.4.9
So, your specification of pod 'Firebase/RemoteConfig','4.4.9' makes no sense, because the sub-spec of a pod does not have its own individual version number. This is what
None of your spec sources contain a spec satisfying the dependency: Firebase/RemoteConfig (= 4.4.9).
is trying to tell you.
Use pod 'FirebaseRemoteConfig','4.4.9' instead.

I installed the pod as below,
pod 'Firebase','6.23.0'
pod 'Firebase/Analytics','6.23.0'
pod 'Firebase/Messaging','6.23.0'
pod 'Firebase/DynamicLinks','6.23.0'
pod 'FirebaseRemoteConfig','4.4.9'
This worked fine without any issues.

Related

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Not able to resolve this issue

I am facing the above issue since a month now. I have tried all possible solutions but still in vain. Please help me to resolve this issue.
I have tried the grep -r "UIWebView" . command and below is the message that I am receiving now:
./ProjectName/Models/logs/SendEnquiry/UI/Cells/SendEnquiryDescriptionTableViewCell.swift: //#IBOutlet weak var webView: UIWebView!
Binary file ./Pods/TwitterKit/iOS/TwitterKit.framework/TwitterKit matches
./Pods/TwitterKit/iOS/TwitterKit.framework/Headers/TWTRTweet.h: * Suitable for loading in a `UIWebView`, `WKWebView` or passing to Safari:
./Pods/LinkedinSwift/README.md:Linkedin Oauth Helper, depend on Linkedin Native App installed or not, using Linkdin IOS SDK or UIWebView to login
./Pods/IOSLinkedInAPIFix1/README.md:The API uses a UIWebView to authenticate against LinkedIn.
./Pods/IOSLinkedInAPIFix1/README.md:* redirectURL: has to be a http or https url (required by LinkedIn), but other than that, the endpoint doesn't have to respond anything. The library only uses the endpoint to know when to intercept calls in the UIWebView.
./Pods/IOSLinkedInAPIFix1/README.md:* presentingViewController: The view controller that the UIWebView will be modally presented from. Passing nil assumes the root view controller.
./Pods/IOSLinkedInAPIFix1/README.md:The cancel callback is executed in case the user actively declines the authorization by pressing cancel button in the UIWebView (see illustration above).
./Pods/GoogleSignIn/CHANGELOG.md:- Supports sign-in via UIWebView rather than app switching to a browser,
Binary file ./Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn matches
Binary file ./.git/index matches
I have updated all related pods. Still the same issue. How to resolve this issue?
Here is the output after running pod outdated command:
The following pod updates are available:
- abseil 0.20190808 -> (unused) (latest version 1.20210324.0)
- Alamofire 4.9.1 -> 5.4.3 (latest version 5.4.3)
- BoringSSL-GRPC 0.0.3 -> 0.0.7 (latest version 0.0.19)
- BSImagePicker 2.10.3 -> 3.3.1 (latest version 3.3.1)
- CryptoSwift 0.15.0 -> (unused) (latest version 1.4.1)
- Firebase 6.16.0 -> (unused) (latest version 8.4.0)
- FirebaseAnalytics 6.2.2 -> 8.4.0 (latest version 8.4.0)
- FirebaseAuth 6.4.3 -> 8.4.0 (latest version 8.4.0)
- FirebaseCore 6.6.1 -> 8.4.0 (latest version 8.4.0)
- FirebaseCoreDiagnostics 1.2.0 -> 8.4.0 (latest version 8.4.0)
- FirebaseCrashlytics 4.0.0-beta.5 -> 8.4.0 (latest version 8.4.0)
- FirebaseFirestore 1.10.2 -> 8.4.0 (latest version 8.4.0)
- FirebaseInstallations 1.1.0 -> 8.4.0 (latest version 8.4.0)
- FirebaseInstanceID 4.3.0 -> (unused) (latest version 7.11.0)
- FirebaseMessaging 4.2.1 -> 8.4.0 (latest version 8.4.0)
- FLAnimatedImage 1.0.12 -> 1.0.16 (latest version 1.0.16)
- Floaty 4.0.1 -> 4.2.0 (latest version 4.2.0)
- GoogleAppMeasurement 6.2.2 -> 8.4.0 (latest version 8.4.0)
- GoogleDataTransport 3.3.1 -> 9.1.0 (latest version 9.1.0)
- GoogleDataTransportCCTSupport 1.3.1 -> (unused) (latest version 3.2.0)
- GoogleSignIn 4.4.0 -> 6.0.1 (latest version 6.0.1)
- GoogleUtilities 6.5.1 -> (unused) (latest version 7.5.0)
- gRPC-C++ 0.0.9 -> 1.28.2 (latest version 1.39.0-pre1)
- gRPC-Core 1.21.0 -> 1.28.2 (latest version 1.39.0-pre1)
- GTMSessionFetcher 1.3.1 -> (unused) (latest version 1.6.1)
- IQKeyboardManagerSwift 6.5.5 -> 6.5.6 (latest version 6.5.6)
- JSQSystemSoundPlayer 2.0.1 -> 2.0.1 (latest version 5.0.0)
- leveldb-library 1.22 -> 1.22.1 (latest version 1.22.1)
- libwebp 1.1.0 -> 1.2.0 (latest version 1.2.0)
- MultiSlider 1.10.6 -> 1.11.2 (latest version 1.11.2)
- nanopb 0.3.9011 -> 2.30908.0 (latest version 2.30908.0)
- PromisesObjC 1.2.8 -> 2.0.0 (latest version 2.0.0)
- Protobuf 3.11.4 -> (unused) (latest version 4.0.0-rc1)
- PusherSwift 7.2.0 -> 10.0.0 (latest version 10.0.0)
- PushNotifications 3.0.4 -> 4.0.0 (latest version 4.0.0)
- ReachabilitySwift 4.3.0 -> (unused) (latest version 5.0.0)
- SDWebImage 5.5.2 -> 5.11.1 (latest version 5.11.1)
- SDWebImageWebPCoder 0.5.0 -> 0.8.4 (latest version 0.8.4)
- Starscream 3.0.6 -> (unused) (latest version 4.0.4)
- SVPinView 1.0.7 -> 1.0.11 (latest version 1.0.11)
- SweeterSwift 1.1.2 -> 1.1.4 (latest version 1.1.4)
- SwiftLint 0.38.2 -> 0.43.1 (latest version 0.43.1)
- SwiftSoup 2.3.0 -> 2.3.2 (latest version 2.3.2)
- SwiftyGif 5.2.0 -> 5.4.0 (latest version 5.4.0)
- SwiftyJSON 5.0.0 -> 5.0.1 (latest version 5.0.1)
The following pods are deprecated:
- Crashlytics (in favor of FirebaseCrashlytics)
- Fabric (in favor of FirebaseCrashlytics)
- JSQMessagesViewController
Here is the Pod file content:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'ProjectName' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for ProjectName
pod 'SwiftyGif'
pod 'SwiftLint'
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'MBProgressHUD'
pod 'SDWebImage'
pod 'Toast-Swift'
pod 'SharkORM'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'GoogleSignIn'
pod 'DropDown'
pod 'iOSDropDown'
pod 'LinkedinSwift'
pod 'BSImagePicker'
pod 'FloatRatingView'
pod 'JSQMessagesViewController'
pod 'SwiftSoup'
pod 'Fabric'
pod 'Crashlytics'
pod 'PusherSwift'
pod 'IQKeyboardManagerSwift'
pod 'Firebase/Core'
pod 'FLAnimatedImage'
pod 'SVPinView'
pod 'Floaty'
pod 'GCCalendar'
pod 'YYCalendar'
pod 'TwitterKit'
pod 'SDWebImageWebPCoder'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'TextFieldEffects'
pod 'Firebase/Messaging'
pod 'PushNotifications'
pod 'Firebase/Analytics'
pod 'Firebase/Crashlytics'
# pod "WARangeSlider"
pod 'MultiSlider'
target 'ProjectNameTests' do
inherit! :search_paths
# Pods for testing
end
target 'ProjectNameUITests' do
# Pods for testing
end
end

CocoaPods could not find compatible versions for pod GoogleDataTransport when installing GoogleMLKit Face Detection

So I tried to install ML Kit Face Detection library by following this documentation, so first I added this line in my podfile:
pod 'GoogleMLKit/FaceDetection'
Unfortunately after I tried to install it I got this error on terminal:
[!] CocoaPods could not find compatible versions for pod "GoogleDataTransportCCTSupport": In snapshot (Podfile.lock):
GoogleDataTransportCCTSupport (= 2.0.1, ~> 2.0)
In Podfile:
GoogleMLKit/FaceDetection was resolved to 0.60.0, which depends on
GoogleMLKit/MLKitCore (= 0.60.0) was resolved to 0.60.0, which depends on
MLKitCommon (~> 0.60.0) was resolved to 0.60.0, which depends on
GoogleDataTransportCCTSupport (~> 1.2)
Specs satisfying the `GoogleDataTransportCCTSupport (= 2.0.1, ~> 2.0), GoogleDataTransportCCTSupport (~> 1.2)` dependency were found, but they required a higher minimum deployment target.
And I added more pod like this:
pod 'MLKitCommon'
pod 'GoogleMLKit/MLKitCore'
But now I got this error on the terminal:
[!] CocoaPods could not find compatible versions for pod "GoogleDataTransport":
In snapshot (Podfile.lock):
GoogleDataTransport (= 5.1.0, ~> 5.1)
In Podfile:
GoogleMLKit/MLKitCore was resolved to 0.60.0, which depends on
MLKitCommon (~> 0.60.0) was resolved to 0.60.0, which depends on
GoogleDataTransport (~> 3.2)
Specs satisfying the `GoogleDataTransport (= 5.1.0, ~> 5.1), GoogleDataTransport (~> 3.2)` dependency were found, but they required a higher minimum deployment target.
After a bit of research I tried to run pod install --repo-update but it still give me that error. Is there anyway to resolve this?
This fixed the problem for me:
pod deintegrate
sudo gem install cocoapods-clean
pod clean
pod setup
pod install
I deleted Podfile.lock and ran pod install. Worked.
The above two methods did not work for me. I was using Firebase "cloud_firestore: 2.2.0" with "google_ml_kit: ^0.6.0". Turns out cloud firestore(2.2.0) requires FirebaseSDK version 8.0.0. I had to downgrade to 2.0.0 and pasted "$FirebaseSDKVersion = '7.11.0'" at the start of my podfile at ios/Podfile. Here's a link to the issue.

CocoaPods could not find compatible versions for pod "GoogleDataTransportCCTSupport"

I've installed Firebase In App Messaging according to the guide: https://rnfirebase.io/in-app-messaging/usage
When I run pod install, I get this:
Using firebase.json from '/../app/firebase.json'
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
Adding a custom script phase for Pod RNFBCrashlytics: [RNFB] Crashlytics Configuration
Detected React Native module pods for RNFBAnalytics, RNFBApp, RNFBCrashlytics, RNFBDynamicLinks, and RNFBInAppMessaging
Updating local specs repositories
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "GoogleDataTransportCCTSupport":
In snapshot (Podfile.lock):
GoogleDataTransportCCTSupport (= 2.0.2, ~> 2.0)
In Podfile:
RNFBInAppMessaging (from `../node_modules/#react-native-firebase/in-app-messaging`) was resolved to 6.4.0, which depends on
Firebase/InAppMessaging (~> 6.13.0) was resolved to 6.13.0, which depends on
Firebase/CoreOnly (= 6.13.0) was resolved to 6.13.0, which depends on
FirebaseCore (= 6.4.0) was resolved to 6.4.0, which depends on
FirebaseCoreDiagnostics (~> 1.0) was resolved to 1.2.3, which depends on
GoogleDataTransportCCTSupport (~> 2.0)
RNFBInAppMessaging (from `../node_modules/#react-native-firebase/in-app-messaging`) was resolved to 6.4.0, which depends on
Firebase/InAppMessaging (~> 6.13.0) was resolved to 6.13.0, which depends on
FirebaseInAppMessaging (~> 0.15.5) was resolved to 0.15.6, which depends on
GoogleDataTransportCCTSupport (~> 1.0)
You have either:
* changed the constraints of dependency `GoogleDataTransportCCTSupport` inside your development pod `RNFBInAppMessaging`.
You should run `pod update GoogleDataTransportCCTSupport` to apply changes you've made.
I've tried a few things including pod install --repo-update but nothing helps.
Adding pod 'FirebaseCoreDiagnostics', '1.2.1' to the Podfile might be a workaround since that podspec only needs GoogleDataTransportCCTSupport 1.x.
Those Firebase versions are several months old - so another approach would be to encourage React Native to update the wrappers.

CocoaPods could not find compatible versions for pod "Moya"

My new project using swift 4.2 has below podFile:
pod 'Moya', '12.0.1'
pod 'SwiftyJSON', '4.0'
pod 'Moya-SwiftyJSONMapper'
Intalling using pod install --verbose shows error:
[!] CocoaPods could not find compatible versions for pod "Moya":
In Podfile:
Moya (= 12.0.1)
Moya-SwiftyJSONMapper was resolved to 1.0.0, which depends on
Moya-SwiftyJSONMapper/Core (= 1.0.0) was resolved to 1.0.0, which depends on
Moya (~> 6.0.0)
CocoaPods could not find compatible versions for pod "SwiftyJSON":
In Podfile:
Moya-SwiftyJSONMapper was resolved to 1.0.3, which depends on
Moya-SwiftyJSONMapper/Core (= 1.0.3) was resolved to 1.0.3, which depends on
SwiftyJSON (~> 2.3.2)
SwiftyJSON (= 4.0)
Your pod version are not compatible with each other, this Podfile won't work.
But you can fix it.
But you have to check what podspecs of your pods to do this:
Moya-SwiftyJSONMapper: latest version of this pod is "3.0.0", and it depends on Moya, version 10.x and any version of SwiftyJSON.
So your version 4.0 of SwiftyJSON will be ok.
But you've specified that you want to install Moya version 12.0.1, which is not one of the 10.x version, so it is incompatible.
So you have to get rid of version 12.0.1 requirement, to make it all work.
pod 'Moya', '~> 10.0'
or just
pod 'Moya'
And, I think it's better to have Podfile with no version specified before first pod install. And only after auto-resolved combination of pods is installed you should freeze version requirements.

Missing GULSwizzler.h file

I've upgraded an iOS/Swift project to the latest Firebase pods.
The following changes were made:
Firebase 5.11.0 (was 5.10.0)
FirebaseAnalytics 5.3.0 (was 5.2.0)
FirebaseCore 5.1.6 (was 5.1.5)
FirebaseInstanceID 3.3.0 (was 3.2.2)
GoogleAppMeasurement 5.3.0 (was 5.2.0)
GoogleUtilities 5.3.4 (was 5.3.3)
nanopb 0.3.901 (was 0.3.8)
I'm getting an error on a missing file that's imported in GoogleUtilities at build time:
'Private/GULSwizzler.h' file not found
My pod import file has the following:
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/AdMob'
pod 'GoogleSymbolUtilities'
pod 'GoogleInterchangeUtilities'
Has anyone come across this or know a solution?
******************************** edit **********************************
What I see under GoogleUtilities is shown below. I note that the .h symbol is dimmed for the file that's missing.
It seems that GULSwizzler.h is not installed properly. For me, it is installed in a different location:
$ find . | grep GULSwizzler.h
./Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h
Here are a few things to try:
Reinstall from a clean environment: pod deintegrate and pod install
Make sure you have the latest version of CocoaPods:
$ pod --version
1.5.3
Probably unrelated, but strange: GoogleSymbolUtilities and GoogleInterchangeUtilities are deprecated private pods that were never intended to be added to Podfiles.

Resources