I was trying to update the existing pods with the pod install
command, but it takes forever to run.
The verbose mode shows it was stuck at the following
Pod Installation Steps
First Open Terminal:
chmod o-w /usr/local
sudo chmod o-w /usr/local
sudo gem install cocoapods
if already installed pod in your system then follow the below steps
sudo gem install cocoapods -V
sudo gem update --system
pod setup
cd /Users/apple/Desktop/Black\&WhiteImageDemo
pod init
open -a Xcode Podfile
pod install
As of 15th August 2016, the repo is a massive 2.39GB file. I opened the Activity Monitor to look at what the terminal was doing. It was downloading this huge file.
Found an alternative way to download cocoapods is to download one of the snapshots available here. It is a bit old but the .bz2 compressed file was much faster to download. Once I had downloaded it, I copied it over to ~/.cocoapods/repos/
and then I unzipped it using bzip2 -dk *.bz2
.
The unzipping took a while and once it was over, I changed the extension of the newly uncompressed file to .tar and did tar xvf *.tar
to unzip that. This will show the list of files being created and will also take a while.
Finally when I ran pod repo list
while inside the project folder, it showed the master folder had been added as a repo. Because I still kept getting an error that it was unable to find the specification for the pod I was looking for, I went to the master folder and did git fetch
and then git merge
. The git fetch took the longest, about an hour at 50 KB/s. I used fetch and merge instead of pull, as I was having issues with it, i.e. fatal: the remote end hung up unexpectedly
. It is now up to date and I was able to get the pod I wanted.
Open terminal and type:
$ sudo gem update cocoapods
Remove all the pods from your project (tricky part):
Manually
Automatically using CocoaPods De-Integrate
Install
$ [sudo] gem install cocoapods-deintegrate
Run
$ pod deintegrate
Here we are going through at installing the Pods again
Change your location your directory
$ cd yourprojectdirectory
Edit podfile by adding lines you need to it
$ open -a Xcode podfile
or
$ nano podfile
FINALLY install the pod again
$ pod install
Hope this helps
I found another way to solve the problem
pod install --verbose --no-repo-update
it works for me.
you can run
pod install --verbose
to see what's going on behind the scenes.. at least you'll know where it's stuck at (it could be a git clone operation that's taking too long because of your slow network etc)
to have an even better idea of why it seems to be stuck (running verbose can get you something like this
-> Installing Typhoon (2.2.1)
> GitHub download
> Creating cache git repo (~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92)
> Cloning to Pods folder
$ /usr/bin/git clone https://github.com/typhoon-framework/Typhoon.git ~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92 --mirror
Cloning into bare repository '~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92'...
is to find out the size of the git repo you're cloning.. if you're cloning from github.. you can use this format:
/repos/:user/:repo
so, for example, to find out about the above repo type
https://api.github.com/repos/typhoon-framework/Typhoon
and the returned JSON will have a size key, value. so the above returned
"size": 94014,
which is approx 90mb. no wonder it's taking forever! (btw.. by the time I wrote this.. it just finished.. ha!)
update: one common thing that cocoa pods do before it even starts downloading the dependencies listed in your podfile, is to download/update its own repo (they call it Setting up Cocoapods Master repo.. look at this:
pod install --verbose
Analyzing dependencies
Updating spec repositories
$ /usr/bin/git rev-parse >/dev/null 2>&1
$ /usr/bin/git ls-remote
From https://github.com/CocoaPods/Specs.git
09b0e7431ab82063d467296904a85d72ed40cd73 HEAD
..
the bad news is that if you follow the above procedure to find out how big the cocoa pod repo is.. you'll get this: "size": 614373,.. which is a lot.
so to get a more accurate way of knowing how long it takes to just install your own repo.. you can set up the cocoa pods master repo separately by using pod setup
:
$ pod help setup
Usage:
$ pod setup
Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
This is where it will create a clone of the public `master` spec-repo from:
https://github.com/CocoaPods/Specs
If the clone already exists, it will ensure that it is up-to-date.
then running pod install