Bir projeden CocoaPods nasıl kaldırılır?


471

Bir projeden CocoaPod'ları kaldırmanın doğru yolu nedir? Tüm CocoaPod'u kaldırmak istiyorum. Müşterim tarafından getirilen bazı sınırlamalar nedeniyle kullanamıyorum. Bir xcworkspace yerine sadece bir xcodeproj olması gerekir.


12
Ve unutmayın: bir dahaki sefere git kullanın ve geri alın!
Dan Rosenstark

35
Runpod deintegrate
onmyway133

Yanıtlar:


1030

Bir projeden CocoaPod'ları kaldırmak mümkündür, ancak şu anda CLI tarafından otomatikleştirilmemektedir. İlk şey, sahip olduğunuz tek sorun bir kullanmak mümkün xcworkspacedeğilse, sadece bir çalışma alanı değil üretecek bayrağı xcodeprojkullanarak CocoaPods sadece s ile kullanabilirsiniz . Ardından bunu ana projenize bir alt proje olarak ekleyebilirsiniz .--no-integratePods.xcodeprojxcodeprojxcodeproj

Tüm CocoaPods entegrasyonunu gerçekten kaldırmak istiyorsanız, birkaç şey yapmanız gerekir:

NOT Yanlış yapılması durumunda bu şeylerin bazılarını düzenlemek ana projenizi bozabilir. Her ihtimale karşı projelerinizi kaynak kontrolüne almanızı şiddetle tavsiye ediyorum. Ayrıca bu talimatlar CocoaPods sürümü içindir 0.39.0, yeni sürümlerle değişebilirler.

  1. Tek başına dosyaları ( Podfile Podfile.lockve Podsdizininizi) silin
  2. Oluşturulanları sil xcworkspace
  3. xcodeprojDosyanızı açın, Pods.xcconfigve libPods.a( Frameworksgruptaki) referanslarını silin
  4. Altında , ve aşamalarını Build Phasessilin .Copy Pods ResourcesEmbed Pods FrameworksCheck Pods Manifest.lock
  5. Bu açık görünebilir, ancak 3. taraf kitaplıklarını başka bir şekilde entegre etmeniz veya bunlara referansları kodunuzdan kaldırmanız gerekir.

Bu adımlardan sonra, xcodeprojCocoaPod'ları entegre etmeden önce var olan bir taneyle ayarlanmalıdır. Eğer bir şeyi kaçırırsam bana haber ver, ben de bunu düzenleyeceğim.

Ayrıca her zaman CocoaPod'ların nasıl geliştirileceğine dair öneriler arıyoruz, bu yüzden bir sorununuz varsa lütfen bunları sorun izleyicimize gönderin, böylece bunları düzeltmenin bir yolunu bulabiliriz!

DÜZENLE

Jack Wu'nun yorumlarda gösterildiği gibi , bu adımları sizin için otomatikleştirebilecek bir üçüncü taraf CocoaPods eklentisi var. Bu bulunabilir burada . Üçüncü taraf bir eklenti olduğunu ve CocoaPods olduğunda her zaman güncellenmeyebileceğini unutmayın. Ayrıca bir CocoaPods çekirdek ekip üyesi tarafından yapıldığını, böylece sorunun bir sorun olmayacağını unutmayın.


Bu yazı için Tanrı'ya şükürler olsun. Bu kabustan mahvoldum ... stackoverflow.com/questions/9863836/library-not-found-for-lpods ve şimdilik CP'yi kaldırmak zorunda kaldım. Teşekkürler
Fattie

1
(Benim durumumda - Mart 2014 - tüm "Ayrıştırma / Facebook kütüphaneleri / mimari ayarları" delilik ile ilgili. Birisi okuma yardımcı olabilir. Tekrar teşekkürler.)
Fattie

Bunu yapmak üzereyim ve bunun nedeni, hiçbirine dokunulmamasına rağmen tüm Pod projelerini düzenli olarak derlemesi gerektiğinden, yapım sürelerimi önemli ölçüde yavaşlattı.
theLastNightTrain

24
Bunu burada bırakacak çünkü benim için harika çalıştı: github.com/kylef/cocoapods-deintegrate
Jack


351

pod deintegrateve pod cleanprojenizden / repodan CocoaPod'u kaldırmak için iki atanmış komut vardır.

Komutların tamamı şunlardır:

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod cache clean --all
$ rm Podfile

Orijinal çözüm burada bulundu: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

CocoaPod belgeleri pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate


3
teşekkürler, benim için çalışıyor (neredeyse). Bu komutlardan sonra derleme sırasında bir linker hatası aldım. Çözüm "Pods çerçeve" Hedefler-> Yapı Aşamaları-> Kütüphaneler ile İkili Bağlantı
kaldırmak

1.0.0beta8 sürümü Cocoapods bu gibi adlarla garip Yapı Aşamaları oluşturduğundan: Pod Pod Manifest.lock'u kontrol edin. Parçalandıktan sonra çıkarıldıklarını kontrol edin.
Timur Bernikovich

Kocoapod yüklü olmayan bir makinedeyseniz, pod komutu çalışmaya başlamadan önce gem install cocoapods yapmanız gerektiğini lütfen unutmayın. Bu, bir projeyi yeni bir sisteme geri yükler veya kopyalarsanız oluşabilir.
NoelHunter

65

Bir projeden kapsülleri tamamen kaldırmak için önce iki şey yüklemeniz gerekir ... bunlar şunlardır (Sisteminizde zaten kakao kapsülleri yüklü olduğu varsayılarak.) ...

  1. Cocoapods-Deintegrate Eklentisi
  2. Cocoapods-Clean Eklentisi

Kurulum

  1. Cocoapods-Deintegrate Eklentisi

    Yüklemek için terminalinizde aşağıdaki komutu kullanın.

    sudo gem install cocoapods-deintegrate
  2. Cocoapods-Clean Eklentisi

    Yüklemek için terminalinizde aşağıdaki komutu kullanın.

    sudo gem install cocoapods-clean

kullanım

Öncelikle her zamanki gibi komutunu kullanarak proje klasörünüze gidin ..

cd (path of the project) //Remove the braces after cd

Şimdi bu iki eklentiyi tamamen kaldırmak için kullanın.

  1. Cocoapods-Deintegrate Eklentisi

    İlk önce bölmeleri projenizden ayrıştırmak için terminalinizdeki şu komutu kullanın.

     pod deintegrate

Parçalayıcı Kapsüller

  1. Cocoapods-Clean Eklentisi

    Kapsülün projenizden ayrılmasından sonra, terminalinizi tamamen temizlemek için aşağıdaki komutu kullanın.

     pod clean

    Yukarıdaki görevleri tamamladıktan sonra proje dizininizde hala Podfile kalmalıdır .. Bunu manuel olarak silmeniz veya terminalde şu komutu kullanmanız yeterlidir.

     rm Podfile

İşte bu ... Şimdi projenizde bakla bulunmuyor ... Temizlendi.

Cocoapod'ların sistemden çıkarılması.

Herhangi bir şekilde coca-pod'ları sisteminizden kaldırmak / kaldırmak için terminalinizde aşağıdaki komutu kullanmaya çalışın.

sudo gem uninstall cocoapods

Koka kapsüllerini otomatik olarak kaldıracaktır.

Teşekkürler. Umarım bu yardımcı olmuştur.


5
Oha! içinde başka projeleriniz olsa bile pod clean çalışma alanınızı siler ! Dikkatli ol!

1
@charl Tek projenizdeki bölmeleri temizlemeniz durumunda, çalışma alanını temizlemeniz gerekir ... ancak yöntem tek bir çalışma
alanıyla

nokta !! Tam olarak istediğim şey
Vigneshwaran.m

49

Bence bunu yapmanın daha kolay bir yolu var.

Kabul edilen cevap tarafından düzenlendiği gibi, şimdi bir üçüncü taraf eklenti cocoapods-deintegrate kullanabilirsiniz , güvenilirdir çünkü bir CocoaPods çekirdek ekip üyesi tarafından yapılmıştır.

Ancak, hala bazı dosyalar var:

Podfile
Podfile.lock
Workspace

Bunları projenizden elle kaldırabilirsiniz , ancak cocoapods-clean sayesinde onları temizlemenize yardımcı olacak başka bir araç daha var .

Son olarak, kaldırma işi hala tamamlanmadı, cocoapods-cleantemizlemeyin Podfile, sadece çalıştırın:

rm Podfile

Şerefe!

Kaldırmadan önce projenizin bir yedeğine sahip olduğunuzdan emin olmalısınız!


1
Deintegrate ile ilgili sorun, tıpkı cocoapods gibi mücevherlere ve yakutlara dayanmasıdır. Şu anda El Capitan ve mücevherlerle ilgili zorluklar nedeniyle baklaları kaldırmak istiyorum. Kaldırıcılar tek başına ikili dosyalar olarak kullanılabilir olmalıdır.
nheagy

Teşekkür ve daha fazla ayrıntı burada başarılı bir deintegrate sonra sorunlarla karşılaşırsanız.
Adam Johns

Teşekkürler bu 'cocoapods-deintegrate' kullanarak pürüzsüz
shaikh

46

pod deintegrate

Bu cmd'den sonra, projenizde hiçbir Cocoapod izi kalmadı.

Ancak, Pods projesine referans veren çalışma alanınız hala devam ediyor, aşağıdaki 3 dosyayı elle kaldırmanız gerekiyor:

xx.xcworkspace
Podifle
Podfile.lock

Ardından projenizi tekrar kullanabilirsiniz.

İyi eğlenceler!

Test CocoaPod sürümü = 1.2.0


Güzel, ayrıca en çok şeyi elle sildikten sonra da burada çalıştı.
brainray

parçalamak nükleer çalışma alanı. İhtiyacınız olursa dikkatli olun.
SafeFastExpressive

1
mistdon ikinci kez hayat kurtardın.
Dheeraj D

20

Tüm bu cevapları denedim ama yine de inşa etmeyeceğim, sonunda denedim:

pod deintegrate
pod install

hangi gerçekten çalıştı!

En azından benim durumumda, tüm pod komut dosyalarını derleme aşamalarınızdan kaldırmanız ve çalışması için tekrar eklemeniz gerekiyor gibi.


Özellikle bakla entegre edilmiş bir projeyi yeniden adlandırdıysanız faydalıdır.
bisma

12

Keith'in cevabı harika - Sadece şunu belirtmek istiyorum: Cocoapods 0.36 , 'use_frameworks!' Kullanıyorsanız, Dinamik Çerçeveleri desteklemeye başladı! Podfile'ınızda ve Cocoapod'ları kaldırmak istiyorsanız, bunu yapmanız gerekir:

  • Build PhasesSilme Embed Pods Frameworksaşaması altında .

Sağ. Bunu yapmazsanız, derleme hataları alırsınız.
Zia

Podsİçinde uğraşan başka dosyalar da varsa Build Phases silin.
luckyging3r

8

Geliştiricinin karşılaşabileceği iki yön olabilir.

  • Ya baklaları projeden tamamen çıkarmak istiyor
  • geliştirici, belirli bir çerçeveyi kapsülden projeden kaldırmak istiyor.

İlk durumda 'pod deintegrate'i kullanmanız ve yukarıdaki cevaplarda belirtilen birkaç adımı izlemeniz gerekir.

İkinci durumda, yüklü herhangi bir çerçeveyi kaldırmak istiyorsanız, pod dosyanızda çok basit bir yol var, sadece pod install komutunu kaldırmak ve çalıştırmak istediğiniz çerçeveyi yorumlayın.

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'ProjectName' do
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

    pod 'iCarousel', '~> 1.8'
#    pod 'Facebook-iOS-SDK', '~> 4.1'
#    pod 'ParseFacebookUtilsV4', '~> 1.11'
#    pod 'Parse', '~> 1.14'


end

Burada iCarousel değil, facebook ve ayrıştırma çerçevelerini (bölmeler kullanılarak yüklendi) kaldırmak istiyorum, bu yüzden pod dosyamı yukarıdaki gibi güncelledim.

Eğer pod install çalıştırırsam, iCarousel'i projemde olduğu gibi tutacak ve facebook ve ayrıştırmayı kaldıracak.


4
  1. Yapmanız gereken ilk şey kaldırmak olduğunu Podfile, Podfile.lock, Podsklasör ve oluşturulan çalışma alanı.
  2. Ardından, dosyalara ve dosyaya .xcodeprojyapılan referansları kaldırın .Pods.xcconfiglibPods.a
  3. Derleme Aşamaları proje sekmesinde, Bölmeleri Yönet Manifest.lock bölümünü (açık), Bölme Kaynaklarını Kopyala bölümünü (alt) ve Bölme Kaynaklarını Göm (alt) silin.
  4. Kaldır Pods.framework.

Yapmak isteyebileceğiniz tek şey, daha önce kullandığınız kütüphanelerin bazılarını içermektir. Bunu, kapsül klasörlerindeki klasörleri projenize sürükleyerek yapabilirsiniz (Destek Dosyalarım klasörüne koymayı tercih ederim).

Benim için çalıştı.


4
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile

Tüm cocoapod'lardan kurtulduktan sonragem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

İlgili tüm pod dosyalarını silin:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

ve Proje Gezgini'nde:

Proje adını tıklayın (mavi simge) -> Hedefler (*) -> Aşama Oluşturma -> Kaldır "[CP] Kontrol Bölmeleri manifests.lock" ("x" üzerine tıklayın)

(*) Proje adını tıklayın, önce kenar çubuğunu görmek için "Proje ve hedef listesini göster" seçeneğini tıklamanız gerekebilir.


Ben de sadece tek bir tane kullandım çünkü "Pods" klasörünü sildim, aksi takdirde sadece "Pods" klasörü içindeki tek "NameOfThePod" klasörünü silin.
Neph

1

Ben iv çok kısaca ne yazacağım (herhangi bir CocoaPods benim projeden silmek için) ..

  1. eklenen tüm klasörleri (çerçeveler, Bölmeler, ...) silme
  2. eklenen tüm dosyaları silin (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. orijinal olanlarınızı bırakın (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. xcode'daki projeden çerçeve referansını kaldır

Çerçeve başvurusunu xcode'dan kaldırmak için:

  1. Proje Gezgini'ni kullanma
  2. Proje Seçin
  3. Hedef Seçin PROJE
  4. Üst seçeneklerden Fazlar Oluştur'u seçin
  5. varsayılan grupları (Hedef Bağımlılıklar, Derleme Kaynakları, Kütüphanelerle Bağlantılı İkili, Paket Kaynaklarını Kopyala) bırakın ve diğer tüm grupları silin


1

Yalnızca bir bölmeyi kaldırmak ve kurmuş olabileceğiniz diğerlerini tutmak istiyorsanız, bölme dosyasını uygulama dizininizde açın ve kaldırmak istediğinizi silin. Ardından terminal kullanarak uygulama dizininize gidin ve şunu yazın:

pod update

Bu işlem, pod dosyasından kaldırdığınız kapsülü kaldıracaktır. Terminalde kaldırıldığını göreceksiniz:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Bu yöntemin, pod dosyanızdaki diğer kapsüllerdeki güncellemeleri de alacağını unutmayın. Bunu isteyebilir veya istemeyebilirsiniz.


Dokümantasyona göre, pod installkapsül eklemek / çıkarmak için kullanmalısınız . Bu, özellikle burada söylediğin gibi güncellemeyi önlemek içindir. Bu konuyla ilgili 'Rehberleri' hakkında daha fazla bilgi edinebilirsiniz
Mark A. Donohoe

0

Bu Terminal'in komutlarını kullanın (Yeni satırların başında sudo kullanmayı unutmayın):

open:YourDir YouName$ sudo gem uninstall cocoapods
Password:?
Remove executables:
    pod, sandbox-pod

in addition to the gem? [Yn]  Y
Removing pod
Removing sandbox-pod
Successfully uninstalled cocoapods-1.4.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-core (1.4.0)
cocoapods-deintegrate (1.0.2)
cocoapods-downloader (1.1.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
cocoapods-try (1.1.0)

Listeyi aşağıdaki gibi tek tek kaldırın:

open:YourDir YourName$ sudo gem uninstall cocoapods-core
Successfully uninstalled cocoapods-core-1.4.0
open:YourDir YourName$ sudo gem uninstall cocoapods-trunk
Successfully uninstalled cocoapods-trunk-1.3.0
open:YourDir YourName$ sudo gem uninstall cocoapods-try
Successfully uninstalled cocoapods-try-1.1.0
open:YourDir YourName$ gem list --local | grep cocoapods
open:YourDir YourName$ sudo gem uninstall cocoapods-stats
Successfully uninstalled cocoapods-stats-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-search
Successfully uninstalled cocoapods-search-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-downloader
Successfully uninstalled cocoapods-downloader-1.1.3
open:YourDir YourName$ sudo gem uninstall cocoapods-plugins
Successfully uninstalled cocoapods-plugins-1.0.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-deintegrate (1.0.2)
open:YourDir YourName$ sudo gem uninstall cocoapods-deintegrate
Successfully uninstalled cocoapods-deintegrate-1.0.2
open:YourDir YourName$ sudo gem uninstall cocoapods-stats
Successfully uninstalled cocoapods-stats-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-search
Successfully uninstalled cocoapods-search-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-downloader
Successfully uninstalled cocoapods-downloader-1.1.3
open:YourDir YourName$ sudo gem uninstall cocoapods-plugins
Successfully uninstalled cocoapods-plugins-1.0.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-deintegrate (1.0.2)
open:YourDir YourName$ sudo gem uninstall cocoapods-deintegrate
Successfully uninstalled cocoapods-deintegrate-1.0.2

0

CocoaPods uygulamasını (Sürüm 1.5.2) kullanarak baklalarımı projeden kaldırabildim. Daha sonra yalnızca podfile, podfile.lock ve xcworkspace dosyalarını klasörde sildim.



0

Artık parçalanman gerektiğini sanmıyorum. Terminalde aşağıdaki komutla bunu yapabildim:

pod kurulum

ve artık pod dosyasında olmayanları otomatik olarak kaldırdı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.