Jak usunąć CocoaPods z projektu?


471

Jaki jest właściwy sposób usunięcia CocoaPods z projektu? Chcę usunąć cały CocoaPod. Ze względu na pewne ograniczenia nałożone przez mojego klienta nie mogę z niego korzystać. Potrzebuję tylko jednego xcodeproj zamiast xcworkspace.


12
I pamiętaj: następnym razem użyj git i po prostu wycofaj go!
Dan Rosenstark,

35
Uruchompod deintegrate
onmyway133,

Odpowiedzi:


1030

Usuwanie CocoaPods z projektu jest możliwe, ale obecnie nie jest zautomatyzowane przez CLI. Po pierwsze, jeśli jedynym problemem, jaki masz, jest niemożność korzystania z xcworkspaceCocoaPods za pomocą xcodeprojs, używając --no-integrateflagi, która utworzy Pods.xcodeprojprzestrzeń roboczą, ale nie. Następnie możesz dodać to xcodeprojjako podprojekt do swojego głównego xcodeproj.

Jeśli naprawdę chcesz usunąć całą integrację CocoaPods, musisz zrobić kilka rzeczy:

UWAGA edytowanie niektórych z tych rzeczy, jeśli wykonane nieprawidłowo, może uszkodzić główny projekt. Gorąco zachęcam do sprawdzenia swoich projektów pod kontrolą źródła na wszelki wypadek. Również te instrukcje dotyczą wersji CocoaPods 0.39.0, mogą się zmienić w nowych wersjach.

  1. Usuń samodzielne pliki ( Podfile Podfile.locki swój Podskatalog)
  2. Usuń wygenerowany xcworkspace
  3. Otwórz xcodeprojplik, usuń odniesienia do Pods.xcconfigi libPods.a(w Frameworksgrupie)
  4. Pod swoim Build Phasesusunąć Copy Pods Resources, Embed Pods Frameworksi Check Pods Manifest.lockfaz.
  5. Może się to wydawać oczywiste, ale musisz zintegrować biblioteki innych firm w inny sposób lub usunąć odniesienia do nich z kodu.

Po tych krokach powinieneś ustawić jeden, xcodeprojktóry istniał przed zintegrowaniem CocoaPods. Jeśli coś przeoczyłem, daj mi znać, a ja to wyedytuję.

Zawsze szukamy też sugestii, jak ulepszyć CocoaPods, więc jeśli masz problemy, prześlij je w naszym narzędziu do śledzenia problemów , abyśmy mogli znaleźć sposób, aby je naprawić!

EDYTOWAĆ

Jak pokazał Jack Wu w komentarzach, istnieje wtyczka CocoaPods strony trzeciej, która może zautomatyzować te kroki za Ciebie. Można go znaleźć tutaj . Pamiętaj, że jest to wtyczka innej firmy i nie zawsze może być aktualizowana, gdy jest CocoaPods. Należy również pamiętać, że jest on tworzony przez członka podstawowego zespołu CocoaPods, więc problem nie będzie problemem.


Bogu dzięki za ten post. Pieprzy mnie ten koszmar ... stackoverflow.com/questions/9863836/library-not-found-for-lpods i na razie musiałem usunąć CP. Dzięki
Fattie,

1
(W moim przypadku - marzec 2014 r. - odnosiło się to do całego szaleństwa „Ustawienia lirariów / architektury bibliotek na Facebooku”. Może pomóc komuś czytać.
Jeszcze

Zaraz to zrobię, a to dlatego, że regularnie musi rekompilować wszystkie projekty kapsuły, nawet jeśli żaden z nich nie został dotknięty, więc znacznie spowolniłem czas kompilacji.
theLastNightTrain

24
Zostawię to tutaj, ponieważ to zadziałało dla mnie świetnie: github.com/kylef/cocoapods-deintegrate
Jack

1
Jeśli ktoś zastanawia się, dlaczego w Xcode pojawia się milion ostrzeżeń, to dlatego, że trzeba zatwierdzić zmiany na git / svn
Achintya Ashok

351

pod deintegratei pod cleansą to dwa wyznaczone polecenia do usunięcia CocoaPod z twojego projektu / repozytorium.

Oto pełny zestaw poleceń:

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

Oryginalne rozwiązanie znaleziono tutaj: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

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


3
dzięki, działa (prawie) dla mnie. Po tych poleceniach dostałem błąd linkera podczas kompilacji. Rozwiązaniem było usunięcie „struktury Pods” z Targets-> Build Phases-> Link Binary With Libraries
uldo 27.01.16

Od wersji 1.0.0beta8 Cocoapods tworzą dziwne Fazy Kompilacji o takich nazwach: 📦 Sprawdź Pods Manifest.lock. Sprawdź, czy zostały usunięte po dezintegracji.
Timur Bernikovich,

Pamiętaj, że jeśli korzystasz z komputera, na którym nie zainstalowano cocoapods, musisz wykonać instalację gem gem cocoapods, zanim polecenie pod będzie działać. Może się to zdarzyć, jeśli przywrócisz lub skopiujesz projekt do nowego systemu.
NoelHunter

65

Aby całkowicie usunąć strąki z projektu, najpierw musisz zainstalować dwie rzeczy ... są one następujące (Zakładając, że masz już strąki kakaowe zainstalowane w systemie.) ...

  1. Cocoapods-Deintegrate Plugin
  2. Wtyczka Cocoapods-Clean

Instalacja

  1. Cocoapods-Deintegrate Plugin

    Użyj następującego polecenia na swoim terminalu, aby go zainstalować.

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

    Użyj następującego polecenia na swoim terminalu, aby go zainstalować.

    sudo gem install cocoapods-clean

Stosowanie

Najpierw przejdź do folderu projektu za pomocą zwykłego polecenia, takiego jak ..

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

Teraz użyj tych dwóch wtyczek, aby całkowicie je usunąć w następujący sposób ...

  1. Cocoapods-Deintegrate Plugin

    Użyj tego polecenia na swoim terminalu, aby najpierw dezintegrować strąki z twojego projektu.

     pod deintegrate

Dezintegrujące strąki

  1. Wtyczka Cocoapods-Clean

    Po dezintegracji kapsuły z projektu użyj następującego polecenia na swoim terminalu, aby całkowicie go wyczyścić.

     pod clean

    Po wykonaniu powyższych zadań w katalogu projektu powinien pozostać plik Podfile. Po prostu usuń go ręcznie lub użyj następującego polecenia na terminalu.

     rm Podfile

To wszystko ... Teraz twój projekt jest wolny od strąków ... Oczyszczony.

Usuwanie Cocoapods z systemu.

W dowolny sposób spróbuj użyć następującego polecenia na terminalu, aby odinstalować / usunąć coca-pods z systemu.

sudo gem uninstall cocoapods

Automatycznie usunie strąki koki.

Dzięki. Mam nadzieję, że to pomogło.


5
Zaraz! pod clean usuwa obszar roboczy , nawet jeśli masz w nim inne projekty! Bądź ostrożny!

1
@charl W przypadku czyszczenia strąków z jednego projektu musisz wyczyścić obszar roboczy ... ale metoda oczywiście nie ma zastosowania do wielu projektów związanych z jednym obszarem roboczym .... :(
onCompletion

miejsce na !! Dokładnie to, czego chciałem
Vigneshwaran.m

49

Myślę, że jest na to łatwiejszy sposób.

Zgodnie z edycją przyjętej odpowiedzi, teraz możesz używać wtyczki innej firmy cocoapod-deintegrate , jest niezawodna, ponieważ została stworzona przez członka podstawowego zespołu CocoaPods.

Ale nadal pozostają niektóre pliki:

Podfile
Podfile.lock
Workspace

Możesz usunąć je z projektu ręcznie, ale jest też inne narzędzie, które pomoże Ci je wyczyścić, dzięki cocoapods-clean .

Wreszcie prace deinstalacyjne wciąż nie są zakończone, cocoapods-cleannie czyść Podfile, po prostu uruchom:

rm Podfile

Twoje zdrowie!

Przed usunięciem upewnij się, że masz kopię zapasową projektu!


1
Problem z dezintegracją polega na tym, że polega ona na klejnotach i rubinie, podobnie jak kokosowe. Obecnie chcę usunąć strąki z powodu trudności z El Capitan i klejnotami. Deinstalatory powinny być dostępne jako samodzielne pliki binarne.
nheagy

Dzięki i więcej szczegółów tutaj, jeśli napotkasz problemy po udanej dezintegracji.
Adam Johns

Dzięki płynnemu użyciu „cocoapods-deintegrate”
szejk

46

pod deintegrate

Po tym cmd nie pozostały żadne ślady Cocoapods w twoim projekcie.

Ale Twój obszar roboczy odwołujący się do projektu Pods nadal pozostaje, musisz ręcznie usunąć poniżej 3 plików:

xx.xcworkspace
Podifle
Podfile.lock

Następnie możesz ponownie użyć swojego projektu.

Baw się dobrze!

Testuj wersję CocoaPod = 1.2.0


Fajnie, działało tutaj również po tym, jak już ręcznie usunąłem większość rzeczy.
brainray

deintegrate nukuje twój obszar roboczy. Bądź ostrożny, jeśli go potrzebujesz.
SafeFastExpressive

1
@ Mistist uratowałeś ci życie po raz drugi.
Dheeraj D

20

Próbowałem wszystkich tych odpowiedzi, ale nadal nie udało się zbudować, w końcu próbowałem:

pod deintegrate
pod install

które faktycznie działało!

To tak, jakby musiał usunąć wszystkie skrypty pod z faz kompilacji i ponownie dodać je ponownie, aby działało, przynajmniej w moim przypadku.


Szczególnie pomocny, jeśli zmienisz nazwę projektu ze zintegrowanymi zasobnikami.
bisma

12

Odpowiedź Keitha jest świetna - chcę tylko podkreślić, że ponieważ Cocoapods 0.36 zaczyna obsługiwać Dynamic Frameworks , jeśli używasz „use_frameworks!” w swoim „Podfile” i jeśli chcesz usunąć Cocoapods, musisz to zrobić:

  • W fazie Build Phasesusuwania Embed Pods Frameworks.

Dobrze. Jeśli tego nie zrobisz, pojawią się błędy kompilacji.
Zia

Jeśli Podswewnątrz są jakieś inne pliki, Build Phases usuń je.
luckyging3r

8

Deweloperzy mogą napotkać dwa aspekty.

  • Albo chce całkowicie usunąć strąki z projektu
  • programista chce odinstalować określoną platformę z projektu z podsów.

W pierwszym przypadku musisz użyć opcji „de deintegrate” i wykonać kilka kroków wymienionych w odpowiedziach powyżej.

W drugim przypadku, jeśli chcesz odinstalować dowolny konkretny framework, który jest tam zainstalowany, bardzo prosty sposób dostępny w pliku pod, po prostu skomentuj środowisko, które chcesz odinstalować i uruchom komendę pod install.

# 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

Tutaj chcę odinstalować frameworki Facebooka i parsować (które zostały zainstalowane przy użyciu pods), a nie iCarousel, dlatego zaktualizowałem mój plik pod, jak wyżej.

Teraz, jeśli uruchomię pod, zainstaluje iCarousel, tak jak jest w moim projekcie, i usunie Facebooka i parsuje.


4
  1. Pierwszą rzeczą, którą musisz zrobić, to usunąć Podfile, Podfile.lockThe Podsfolder, a wygenerowany roboczy.
  2. Następnie w .xcodeprojusuń odniesienia do Pods.xcconfigplików i libPods.apliku.
  3. Na karcie projektu Fazy kompilacji usuń sekcję Sprawdź strugi Manifest.lock (otwórz), Skopiuj zasoby zasobników (dolna część) i Osadź zasobniki (dolna część).
  4. Usuń Pods.framework.

Jedyne, co możesz chcieć zrobić, to włączyć niektóre biblioteki, których wcześniej używałeś. Możesz to zrobić, po prostu przeciągając dowolne foldery znajdujące się w folderach strąków do projektu (wolę umieścić je w folderze plików pomocniczych).

To zadziałało dla mnie.


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

Po pozbyciu się wszystkich kokosowychgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

Usuń wszystkie powiązane pliki pod:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

oraz w Nawigatorze projektu:

Kliknij nazwę projektu (niebieska ikona) -> Cele (*) -> Fazy budowy -> Usuń „[CP] Sprawdź manifesty strąków. Zablokuj” (kliknij „x”)

(*) Kliknij nazwę projektu, być może będziesz musiał kliknąć „Pokaż listę projektów i celów”, aby najpierw wyświetlić pasek boczny.


Usunąłem również folder „Pods”, ponieważ używałem tylko jednego, w przeciwnym razie po prostu usuń pojedynczy folder „NameOfThePod” w folderze „Pods”.
Neph

1

Napiszę, co iv zrobiłem bardzo krótko (aby usunąć CocoaPods z mojego projektu) ..

  1. usuń dowolny dodany folder (frameworki, kapsuły, ...)
  2. usuń wszelkie dodane pliki (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. po prostu zostaw swoje oryginalne (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. usuń odniesienie ramowe z projektu na xcode

Aby usunąć odwołanie do frameworka z xcode:

  1. Użyj Nawigatora projektu
  2. Wybierz Projekt
  3. Wybierz opcję PROJEKT docelowy
  4. Wybierz Fazy budowania z najlepszych opcji
  5. pozostaw grupy domyślne (Zależności docelowe, Kompiluj źródła, Połącz pliki binarne z bibliotekami, Kopiuj zasoby pakietu) i usuń wszelkie inne


1

Jeśli chcesz tylko usunąć jedną kapsułę i zachować inne, które mogły być zainstalowane, otwórz plik pod w katalogu aplikacji i usuń ten, który chcesz usunąć. Następnie przejdź do katalogu aplikacji za pomocą terminala i wpisz:

pod update

Spowoduje to usunięcie kapsuły, którą usunąłeś z pliku. Zobaczysz, że został usunięty w terminalu:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Zauważ, że ta metoda spowoduje również pobranie wszelkich aktualizacji innych strąków w twoim pliku pod. Możesz tego chcieć lub nie.


Zgodnie z dokumentacją należy używać pod installdo dodawania / usuwania strąków. Ma to na celu uniknięcie aktualizacji, jak powiedziałeś tutaj. Możesz przeczytać więcej na temat ich „Przewodników” na ten właśnie temat ... guide.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe

0

Użyj tych poleceń terminalu (nie zapomnij użyć sudo na początku nowych linii):

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)

Odinstaluj listę jeden po drugim:

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

Udało mi się usunąć swoje strąki w projekcie za pomocą aplikacji CocoaPods (wersja 1.5.2). Następnie usunąłem tylko pliki podfile, podfile.lock i xcworkspace w folderze.



0

Nie sądzę, że musisz się dezintegrować. Byłem w stanie to zrobić za pomocą następującego polecenia w terminalu:

instalacja pod

i automatycznie usuwa te, których już nie ma w podfile

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.