Cocoapods’da Podfile Güncellenmeme Durumu

iOS Development yapıyorsanız muhtemelen siz de Cocoapods1 kullanmışsınızdır. Bu aracı kısaca anlatmak gerekirse; birden fazla mock-up ya da framework’ü GitHub üzerinden XCode projenize enregre edebiliyorsunuz. Bunu sadece bir tane Podfile adı verilen bir dosyaya ilgili framework’ün ismini ve varsa versiyonunu yazdıktan sonra terminal üzerinden bir command çalıştırarak yapabiliyorsunuz. Her şey çok basit gözüküyor ama benim gibi cocoapods’u uzun süreden sonra tekrar kullanmak isteyince sistem yanıt vermezse ne yapacağınızı şaşırıyorsanız işte orada sıkıntı var demektir.

iOS Development yapıyorsanız muhtemelen siz de Cocoapods1 kullanmışsınızdır. Bu aracı kısaca anlatmak gerekirse; birden fazla mock-up ya da framework’ü GitHub üzerinden XCode projenize enregre edebiliyorsunuz. Bunu sadece bir tane Podfile adı verilen bir dosyaya ilgili framework’ün ismini ve varsa versiyonunu yazdıktan sonra terminal üzerinden bir command çalıştırarak yapabiliyorsunuz. Her şey çok basit gözüküyor ama benim gibi cocoapods’u uzun süreden sonra tekrar kullanmak isteyince sistem yanıt vermezse ne yapacağınızı şaşırıyorsanız işte orada sıkıntı var demektir.

Hata: “# Pod install” komutunu yazıyoruz ama tepki alamıyoruz.

İşte bu büyük bir hata. Komutu yazıyorsunuz ama arada 15dk geçse de ne sistem güncelleniyor ne de “Analysing dependencies” yazısı gidiyor.

Çözüm:

1- Cocoapods’un tekrar yüklenmesi gerekli
Bunun için $ pod setup yazmanızın yeterli olması gerek. Yazarken de sonuna --verbose eklersek en azından ne işlem yaptığını görebiliriz. Bendeki durumda dikkatimi çeken şey eski sürüm cocoapods yüklü olması (0.37.1) durumuydu.

Updating spec repo master

$ /usr/bin/git pull –ff-only

uyarısından sonra ekranın ilerlememesi durumu yani.

2- Cocoapods’un güncellenmesi
Bunun için önce eski dosyaları bir kaldırıyoruz $ rm -rf ~/.cocoapods; pod setup komutu bizim için eski dosyaları kaldıracak ve yeni dosyaları yükleme için indirmemizi sağlayacak.

Kurulum için $ gem install cocoapods komutunu kullanıyoruz ama o da ne, bize bir uyarı geliyor (uyarı gelmiyorsa zaten yürüyün gidin, setup kodu yazarsanız iş biter) uyarı geliyorsa, devam edelim.

Fetching: cocoapods-core-0.38.2.gem (100%)

ERROR: While executing gem … (Gem::FilePermissionError)

You don’t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

Bu uyarıyı alıyorsanız bilin ki Mac bilgisayarda yüklü olan Ruby sürümünüz güncel değil ve cocoapods ise yeni güncel Ruby’i istiyor. Ama user hakkınız olmadığı için bunu yapamıyorsunuz. Pek tavsiye edilmeyen ama istinasız herkesin kullandığı bir komuta başvuruyoruz burada: sudo

Bu bir best practice değildir!! uyarısını verdikten sonra geçici admin hakkı veren yeni komutumuzla deneme yapıyoruz: $ sudo gem install cocoapods

İşte istediğimiz güncelleme oluyor.

3- Pods’un yüklenmesi
Bu işlemden sonra yapacak bir şey yok. Projemizin folder’ına gidip usulca $ pod install yazıyoruz ve bize tane tane yüklemelerimizi yapıyor.

Bu sorunu yaşadığınızda farklı bir yöntemle mi çözdünüz, yoksa benim gibi sudo tarzı komutları kullanmak zorunda kaldınız mı?


  1. https://cocoapods.org