cocoa pods Dependency management - ios

[!] Unable to satisfy the following requirements:
SDWebImage (= 3.7) required by DZNPhotoPickerController/Core (1.6.0)
AFNetworking (~> 3.0) required by Podfile
AFNetworking (~> 1.3.3) required by DZNPhotoPickerController (1.0.2)
PodFile
pod 'DZNPhotoPickerController'
pod 'ZXingObjC', '~> 3.0'
pod 'vfrReader','~>2.8.6'
pod 'Mantle'
pod 'PPSSignatureView'
pod 'AFNetworking','~>3.0'
pod 'JNKeychain'
pod 'SVProgressHUD'
pod 'ZipArchive'
I want to update AFNetworking.
Help me to solve this

To fix this you might need to
Fork the DZNPhotoPickerController repo and modify the dependency in
the Pod spec and then use your forked repo's git location in the pod
file. Not a great solution for the long term but works.
For instance, The Pod spec here should have the line#33 which is
ss.dependency 'AFNetworking'
should be changed to
ss.dependency 'AFNetworking', '~> 3.0'
in your forked repo.
Then use in your Pod file as below
pod 'DZNPhotoPickerController', :git => 'https://github.com/yourUsername/DZNPhotoPickerController.git'
Your forked repo is not guaranteed to work out of the box if the project relies on legacy dependency code, if any. In this particular case, if it uses any methods of AFNetworking that is removed in 3.0 it will not work.

To update a single AFNetworking pod,
pod update AFNetworking
with above code, cocoapods will find a latest updated pod version and update your pod.
To update your all pods you can use
pod update
this will update your all the pods.

The issue looks like 'DZNPhotoPickerController' has dependancy of ss.dependency 'AFNetworking', '~> 2.6.0' so when you are trying to update AFNetworking to version 3.0 it shows the wrong version error.
If you didn't check it recently the 'DZNPhotoPickerController' has also updated it's podspec to make AFNetworking to 3.0 so you should try pod update now it may fix your issue as both dependancy needs the same version
If the above and the fork 'DZNPhotoPickerController' in to newer one didn't work
Please remove the 'DZNPhotoPickerController' from the cocoapods
update the cocoapods by pod update
if it's successful add
the 'DZNPhotoPickerController' dependancy again in the cocoapods and
install that again it may solve your problem

Related

CocoaPods could not find compatible versions for pod "Firebase/Analytics"

I'm new to React-Native and developing a project. Previously, it was working fine but when I installed Push Notification (rnfirebase for messaging) related dependencies, I'm getting these errors and I also tried all possible solutions from other questions too but no success.
Here is the complete errors which I'm getting while pod installation.
[!] CocoaPods could not find compatible versions for pod "Firebase/Analytics":
In snapshot (Podfile.lock):
Firebase/Analytics (= 6.13.0)
In Podfile:
Firebase/Analytics
RNFBMessaging (from `../node_modules/#react-native-firebase/messaging`) was resolved to 7.1.5, which depends on
Firebase/Analytics (~> 6.25.0)
You have either:
* out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
* changed the constraints of dependency `Firebase/Analytics` inside your development pod `RNFBMessaging`.
You should run `pod update Firebase/Analytics` to apply changes you've made.
This is the code in the pod file.
# add the Firebase pod for Google Analytics
pod 'Firebase/Analytics'
# pod 'Firebase/Auth'
pod 'Fabric', '~> 1.10.2'
pod 'Crashlytics', '~> 3.14.0'
# add pods for any other desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
I tried the following workaround to resolve this issue.
1. pod install --repo-update
2. pod repo remove master
pod setup
pod install
3. Delete podfile.lock
pod install
But none solution worked for me. Can anyone please help me to resolve this issue? I will really appreciate it.

Stop Re-creating CocoaPods due to major version update on pod install

how do i stop the re-installing of old pods on new pod install.
old pod was 1.0.0, updated pod is 1.1.1
pod install --no-repo-update ---->
Re-creating CocoaPods due to major version update.
for example:
pod file: pod 'Alamofire', '~> 3.3'
Installing Alamofire (3.5.1) --> prevent this from installing on pod install
If you want a specific version, don't use compatibility operator ~>, just provide the version:
pod 'Alamofire', '3.3.1'
This means that you only want this, and no other version. By specifying '~> 3.3', you are saying that you want any version that's compatible, which essentially is 3.x.y.
You can read more on semantic versioning here: http://semver.org.

Cocoapods : target has transitive dependencies that include static binaries when installing 'VialerSIPLib'

I'm trying to install an objective-c Wrapper for Jsip 'VialerSIPLib' and use it in my swift project here is my pod
platform :ios, ’10.0’
use_frameworks!
target 'EMedicalAdmin' do
pod 'ObjectMapper', '~> 2.1'
pod 'Alamofire', '~> 4.3'
pod 'SwiftyAvatar', '~> 1.0'
pod 'AlamofireImage', '~> 3.1'
pod 'Eureka', '~> 2.0.0-beta.1'
pod 'JSQMessagesViewController', :git => 'https://github.com/jessesquires/JSQMessagesViewController.git', :branch => 'develop'
pod 'PKHUD', '~> 4.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'ImageSlideshow', '~> 1.1.0'
pod 'SwiftyJSON'
pod "FlexibleSteppedProgressBar"
pod 'BTNavigationDropdownMenu', :git => 'https://github.com/PhamBaTho/BTNavigationDropdownMenu.git', :branch => 'swift-3.0'
pod 'VialerSIPLib'
end
but i get this error when installing :-
target has transitive dependencies that include static binaries:
and if i remove
use_frameworks!
from my podfile it would work but all my other swift based pods won't work
so, i'm left with using only this one pod (VialerSIPLib) or Use all my other pods except it
Please add this to your podspec: s.static_framework = true
This is available from cocoapods version 1.4.0.
It worked for me.!!
use_frameworks! should be enough but sometimes the pod.lock file gets corrupted.
So you can delete the pod.lock file and then do
pod repo update and pod install
if any one is Still wondring ,it can't be Done
Using dynamic vendored frameworks shouldn't be a problem even if the
developer isn't using CocoaPods with use_frameworks!, unless they for
some reason need a static lib, such as if building a command line
tool, where static linking is preferable.
So .You Could add the static library manually and link it in you project or wait for the vendor to Change the library into a dynamic Framework
More info here
For me this is how i solved it :-
1- Downloaded the static library using Cocoapods without use_frameworks!
2- used Carthage for Adding other libraries
3- and if a library Doesn't have a Carthage support i would do it manually (Not advised since alot of Duplicate dependencies may Appear)
I put up a repo to show how to do: https://github.com/Lucashuang0802/CocoaPodsWithCarthage
There are a couple things to do:
- install your objective-c lib via CocoaPods without indicating use_framework! in the Podfile
- install your pure Swift module via Carthage
You should be able to compile fine with this solution.
It's a weird one.
For me uninstalling and installing again worked.
Steps -
Comment(#) the error causing pod in pod file
Pod install
Uncomment the line in pod file and save
Pod install

Firebase related pods are automatically added in the project pod file, which I haven't specified in pod file

I have the following pods listed in my podfile
pod 'AFNetworking', '~> 3.0'
pod 'MBProgressHUD', '~> 1.0.0'
pod 'AFNetworkActivityLogger', git: 'https://github.com/AFNetworking/AFNetworkActivityLogger.git', branch: '3_0_0'
pod 'Fabric'
pod 'Crashlytics'
pod 'CocoaLumberjack'
pod 'Google/SignIn'
But after I installed the above pods using "pod install", I have some additional pods installed in my project as follows,
FirebaseAnalytics
FirebaseCore
FirebaseInstanceID
likewise, May I know why this happens,
If in case its some sort of dependencies related, please let me know along which pod these dependencies are installed.
Recently Firebase linked up with Google.
So Google make some framework mandatory, if you have use any product of google then Below framework is mandatory (If use Pods)
FirebaseAnalytics
FirebaseCore
There is no official docs available from google.
I had said above statement by my personal experience. I have use Google/SignIn and firebase in many Projects of google by using Cocoa Pods, My conclusion is that Above framework mandatory for any specially for Google/SignIn it is mandatory.

During Pod Installation `AFNetworking (~> 3.0)` is not used in any concrete target

Recently I've installed cocoapods v 1.0.0 in my mac successfully, I am trying to install 'AFNetworking', '~> 3.0' dependency in my pod file of my project directory. which I've created successfully, by putting following code in my pod file
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking', '~> 3.0'
but when I write pod install in terminal it giving me following error
[!] The dependency `AFNetworking (~> 3.0)` is not used in any concrete target.
could anyone suggest me why I am getting this error & how to resolve this issue?
After submitting this question, I further explored its solution & come to know at "https://guides.cocoapods.org/using/the-podfile.html" that I should write simply this code in my podefile
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
end
instead of above which I found at github AFNetworking official dependency installation guide. https://github.com/AFNetworking/AFNetworking
But I am curious about why the official AFNetworking method does not works for its installation in my project? could anyone answer it please?
anyway Thanks to cocoapods official website.

Resources