Why does `pod install` change the PODS_ROOT path? - ios

Whenever I run pod install, CocoaPods tries to change the PODS_ROOT/... to PODS_PODFILE_DIR_PATH/... in the build phase.
I'm not sure why this value is changing just for my Cocoapods setup and not for my other team members. Does anyone know why this value would change?
CocoaPods Version: 1.2.1
Podfile.lock Version: 1.2.1
Xcode Version: Version 8.3.3 (8E3004b)
Thank You.

This is the expected behavior starting with CocoaPods 1.2.1. CocoaPods is updating here the Check Pods Manifest Lock build phase to support symlinked Pods directories. (See https://github.com/CocoaPods/CocoaPods/issues/5499)
So the question would be rather why does it not change for your team members? They might be using older versions of CocoaPods and would be ignoring the warning they should see when running pod install.
[!] The version of CocoaPods used to generate the lockfile (1.2.1) is higher than the version of the current executable (#{VERSION}). Incompatibility issues may arise.
If you commit this change, you'll force them to update.

Related

SwiftSoup cocoapods install only and only version 1.4, not 1.5

I tried to install swiftSoup to parse HTML to my xCode project but unfortunately version of swiftSoup installed by command expressed in official site
is 1.4 which is unacceptable to work with swift 4.0. I found out that version of swiftSoup compatible with xCode 9 and swift 4.0 is swiftSoup ver.1.5.2 but I does not installs by command i tried from official site( even more i tried to mention version in a pod file and threw me an error.
How can I install the latest version if swiftSoup by cocoapods?
platform :ios, ’11.0’
This line indicate that what is your pod deployment target so it will install compatible pod with above platform sometime it's happened that after upgrade your project developer forgot to change this target that why sometime old pod install every time. So always change here if you changed the deployment target of your project.
put pod 'SwiftSoup', '~> 1.4' in your pod file and run pod install command and maybe it will help you to get 1.4 version of SwiftSoup
Finally I succeeded to install swiftSoup ver.1.5.8 after a lot of struggling. In general I needed to install classic ancient version of swiftSoup as described in official site (pod 'SwiftSoup') and with big help of Chirag Shah I got to know that I need to mention my target which is iOS 11 (remove hash sign and does this match with current deployment target) and I need to update my old-world pod by pod update command. Thats it. But there was a problem when I inserted command pod update I got and error:
Updating spec repo `master`[!]
Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
So first I needed to resolve this problem with the big help of this link. I found out that I needed update openssl, then ruby, then cocoapod.
Here is copy of steps I took:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
:
2.5.0-rc1
2.5.0
2.6.0-dev
:
$ rbenv install 2.5.0
$ rbenv versions
* system (set by /Users/username/.rbenv/version)
2.5.0
$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
$ rbenv global 2.5.0
$ rbenv versions
system
* 2.5.0 (set by /Users/username/.rbenv/version)
$ ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16]
$ gem install cocoapods -n /usr/local/bin
$ which pod
/usr/local/bin/pod
$ pod --version
1.4.0
And then I can return to my project where I uninstalled my old pod and mention target ios 11:
platform :ios, ’11.0’
and eventually insert pod update command then cocopods will update my pod without any error =))

The version of CocoaPods used to generate the lockfile (1.5.3) is higher than the version of the current executable (1.5.2)

on $pod install it gives warning & fails
The version of CocoaPods used to generate the lockfile (1.5.3) is higher than the version of the current executable (1.5.2)
What is it trying to say ?
macOs : 10.11.6 osx el capitan
my pod version is : 1.5.3
What does"current executable" (1.5.2) means ?
and
how to update it ?
The error you are getting is due to your podfile.lock being built with an older version of Cocoapods. All you need to do is to delete your podfile.lock file and run pod install. This will create a new podfile.lock, with your current dependencies. Note that it should not take too long because your files should already be downloaded, they just need to be linked in said file.
3 solution
deleted ios/podfile.lock and again do $pod install
OR
OS UPDATE
2.1 updated mac to high sierra or higher
2.2 update xcode
2.3 then update pod $sudo gem install cocoapods
2.4 then $cd ios
2.5 then $pod install
OR
do any thing to make version match, then only it will work
For those like me whose cocoapods version is 1.5.2, you can update cocoapods using
sudo gem install cocoapods
and the problem is solved
For checking pod version use
pod --version
For those for which cocoapods version is 1.5.3, you can delete podfile.lock and do pod install. However please note that if the version, of libraries used in your project, is not specified in podfile, then they will be automatically updated to latest vesrion.
$ [sudo] gem install cocoapods
you can update with this command
If you have tried the above methods and it doesn't work, then try this way:
gem update --system
$ sudo gem install cocoapods
you can solve

Nuke is not installing the latest version available on the GitHub

I just added a new pod my podfile - pod 'Nuke' to my iOS app
pofile.lock shows that app installed version is 4.1.2
However, on GitHub, Nuke version 5.1 is available. Podspec shows version 5.1
https://github.com/kean/Nuke
What may be the issue?
Once I upgrade cocoa pods to 1.2.0, I was able to install nuke 5.1 version

how to install speacific podfile in ios with out touching other podfiles

I want to install specific dependency using cocoapods. if I execute pod install, other dependencies are updating before installing my newly added dependency. I just want to install specific pod without touching other dependencies. And I know deleting, updating any dependency also updates others. Is there any way to solve this problem?
Actually my problem is when I myself modify some dependency and run pod install it reverts back to its original version. But I don't want to lose my changes
Any suggestion will be appreciated.
Make sure that Podfile.lock is in the same folder as Podfile is.
Add a line in the Podfile
pod 'MBProgressHUD','~> 0.9'
cd to your project and use the following line in the Terminal, it'll install just the above pod you specified.
pod install podName
From official website here's the link!
Running pod install will install the current version of RestKit, causing a Podfile.lock to be generated that indicates the exact version installed (e.g. RestKit 0.10.3). Thanks to the Podfile.lock, running pod install on this hypothetical project at a later point in time on a different machine will still install RestKit 0.10.3 even if a newer version is available. CocoaPods will honour the Pod version in Podfile.lock unless the dependency is updated in the Podfile or pod update is called (which will cause a new Podfile.lock to be generated). In this way CocoaPods avoids headaches caused by unexpected changes to dependencies.

Cocoapods use_frameworks! issue

I found out that the way to resolve an issue, in a library i'm using, is to add use_frameworks! to the podfile. When i run pod install on the terminal, i get the following error:
[!] Invalid Podfile file: undefined method `use_frameworks!' for #.
Updating CocoaPods might fix the issue.
I'm using Cocoapods so i don't understand this issue. This tag is required for projects using swift, i'm using objective-c.
Looks to me like the second part of that error message:
Updating CocoaPods might fix the issue.
Is your issue. use_frameworks! was added in CocoaPods 0.36.0 which was just released recently.
Use pod --version to see what you're currently running. Assuming it's earlier than 0.36.0 you'll need to update it with
[sudo] gem install cocoapods
Which is just the same way you originally installed it.
I had the same issue when trying to run pod install on my mac.
So incase anyone encounters this issue what worked for me was changing the current ruby version with rvm.
On console, Use rvm list to see what versions you have installed:
So the version of ruby that was running on my mac was ruby-2.1.2.
I changed it with:
rvm use ruby-2.2.2
and ran pod install again and it worked.

Resources