Wie entferne ich CocoaPods aus einem Projekt?

471

Was ist der richtige Weg, um CocoaPods aus einem Projekt zu entfernen? Ich möchte den gesamten CocoaPod entfernen. Aufgrund einiger von meinem Kunden auferlegter Einschränkungen kann ich es nicht verwenden. Ich brauche nur ein xcodeproj anstelle eines xcworkspace.

Andres
quelle
12
Und denken Sie daran: Verwenden Sie git das nächste Mal und rollen Sie es einfach zurück!
Dan Rosenstark
35
Runpod deintegrate
onmyway133

Antworten:

1030

Das Entfernen von CocoaPods aus einem Projekt ist möglich, wird jedoch derzeit von der CLI nicht automatisiert. Erstens, wenn das einzige Problem, das Sie haben, nicht in der Lage ist, einen zu verwenden xcworkspace, können Sie CocoaPods mit nur xcodeprojs verwenden, indem Sie das --no-integrateFlag verwenden, das den Pods.xcodeprojArbeitsbereich erzeugt, aber keinen. Dann können Sie dies xcodeprojals Teilprojekt zu Ihrem Hauptprojekt hinzufügen xcodeproj.

Wenn Sie wirklich die gesamte CocoaPods-Integration entfernen möchten, müssen Sie einige Dinge tun:

HINWEIS Wenn Sie einige dieser Dinge falsch bearbeiten, kann dies Ihr Hauptprojekt beschädigen. Ich empfehle Ihnen dringend, Ihre Projekte für alle Fälle in die Quellcodeverwaltung einzuchecken. Diese Anweisungen gelten auch für die CocoaPods-Version 0.39.0. Sie können sich mit neuen Versionen ändern.

  1. Löschen Sie die eigenständigen Dateien ( Podfile Podfile.lockund Ihr PodsVerzeichnis).
  2. Löschen Sie die generierte xcworkspace
  3. Öffnen Sie Ihre xcodeprojDatei, löschen Sie die Verweise auf Pods.xcconfigund libPods.a(in der FrameworksGruppe)
  4. Unter Ihren Build Phaseslöschen Sie die Copy Pods Resources, Embed Pods Frameworksund Check Pods Manifest.lockPhasen.
  5. Dies mag offensichtlich erscheinen, aber Sie müssen die Bibliotheken von Drittanbietern auf andere Weise integrieren oder Verweise darauf aus Ihrem Code entfernen.

Nach diesen Schritten sollten Sie eine Single xcodeprojfestlegen, die vor der Integration von CocoaPods vorhanden war. Wenn ich etwas verpasst habe, lass es mich wissen und ich werde es bearbeiten.

Außerdem sind wir immer auf der Suche nach Vorschlägen zur Verbesserung von CocoaPods. Wenn Sie also Probleme haben, senden Sie diese bitte in unseren Issue-Tracker, damit wir einen Weg finden, sie zu beheben!

BEARBEITEN

Wie gezeigt von Jack Wu in den Kommentaren gibt es eine dritte Partei CocoaPods dass Plugin diese Schritte für Sie automatisieren. Es kann hier gefunden werden . Beachten Sie, dass es sich um ein Plugin eines Drittanbieters handelt und möglicherweise nicht immer aktualisiert wird, wenn CocoaPods verwendet wird. Beachten Sie auch, dass es von einem CocoaPods-Kernteammitglied erstellt wurde, damit das Problem kein Problem darstellt.

Keith Smiley
quelle
Gott sei Dank für diesen Beitrag. Ich wurde von diesem Albtraum verarscht ... stackoverflow.com/questions/9863836/library-not-found-for-lpods und ich musste CP vorerst entfernen. Danke
Fattie
1
(In meinem Fall - März 2014 - bezog es sich auf den ganzen Wahnsinn "Parse / Facebook Liraries / Architecture Settings". Könnte jemandem beim Lesen helfen. Nochmals vielen Dank.)
Fattie
Ich bin dabei, dies zu tun, und der Grund dafür ist, dass regelmäßig alle Pod-Projekte neu kompiliert werden müssen, obwohl keines davon berührt wurde. Dies hat meine Erstellungszeiten erheblich verlangsamt.
theLastNightTrain
24
Ich werde das hier lassen, weil es für mich großartig funktioniert hat: github.com/kylef/cocoapods-deintegrate
Jack
1
Wenn sich jemand fragt, warum eine Million Warnungen in Xcode auftauchen, müssen Sie Ihre Änderungen auf git / svn
Achintya Ashok am
351

pod deintegrateund pod cleansind zwei festgelegte Befehle zum Entfernen von CocoaPod aus Ihrem Projekt / Repo.

Hier ist der vollständige Befehlssatz:

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

Die ursprüngliche Lösung wurde hier gefunden: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

CocoaPod-Dokumentation unter pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate

DevGansta
quelle
3
danke, funktioniert (fast) für mich. Nach diesen Befehlen habe ich beim Kompilieren einen Linkerfehler bekommen. Die Lösung bestand darin, das "Pods-Framework" aus Targets-> Build Phases-> Link Binary With Libraries zu entfernen
uldo
Seit Version 1.0.0beta8 erstellen Cocoapods seltsame Build-Phasen mit folgenden Namen: 📦 Überprüfen Sie Pods Manifest.lock. Überprüfen Sie, ob sie nach der Deintegration entfernt wurden.
Timur Bernikovich
Bitte beachten Sie, dass Sie, wenn Sie sich auf einem Computer befinden, auf dem keine Cocoapods installiert sind, Cocoapods installieren müssen, bevor der Befehl pod funktioniert. Dies kann passieren, wenn Sie ein Projekt wiederherstellen oder auf ein neues System kopieren.
NoelHunter
65

Um Pods vollständig aus einem Projekt zu entfernen, müssen Sie zuerst zwei Dinge installieren ... die folgenden (vorausgesetzt, Sie haben bereits Kakao-Pods in Ihrem System installiert.) ...

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

Installation

  1. Cocoapods-Deintegrate Plugin

    Verwenden Sie den folgenden Befehl auf Ihrem Terminal, um es zu installieren.

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

    Verwenden Sie den folgenden Befehl auf Ihrem Terminal, um es zu installieren.

    sudo gem install cocoapods-clean

Verwendungszweck

Gehen Sie zunächst mit dem Befehl wie gewohnt in Ihren Projektordner.

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

Verwenden Sie nun diese beiden Plugins, um es wie folgt vollständig zu entfernen.

  1. Cocoapods-Deintegrate Plugin

    Verwenden Sie den folgenden Befehl auf Ihrem Terminal, um zuerst die Pods aus Ihrem Projekt zu deintegrieren.

     pod deintegrate

Zerfallende Hülsen

  1. Cocoapods-Clean Plugin

    Verwenden Sie nach der Deintegration des Pods aus Ihrem Projekt den folgenden Befehl auf Ihrem Terminal, um ihn vollständig zu bereinigen.

     pod clean

    Nach Abschluss der oben genannten Aufgaben sollte sich die Pod-Datei noch in Ihrem Projektverzeichnis befinden. Löschen Sie diese einfach manuell oder verwenden Sie den folgenden Befehl auf dem Terminal.

     rm Podfile

Das war's ... Jetzt haben Sie Ihr Projekt frei von Pods ... Gereinigt.

Cocoapods aus dem System entfernen.

Versuchen Sie auf jeden Fall, den folgenden Befehl auf Ihrem Terminal zu verwenden, um die Coca-Pods von Ihrem System zu deinstallieren / entfernen.

sudo gem uninstall cocoapods

Die Coca-Pods werden automatisch entfernt.

Vielen Dank. Hoffe das hat geholfen.

bei Fertigstellung
quelle
5
Whoa! pod clean löscht Ihren Arbeitsbereich , auch wenn Sie andere Projekte darin haben! Achtung!
1
@charl Wenn Sie Pods aus Ihrem einzelnen Projekt entfernen möchten, müssen Sie den Arbeitsbereich löschen ... aber die Methode ist offensichtlich nicht für mehrere Projekte anwendbar, die dem einzelnen Arbeitsbereich zugeordnet sind .... :(
onCompletion
genau richtig !! Genau das, was ich wollte
Vigneshwaran.m
49

Ich denke, es gibt einen einfacheren Weg, das zu tun.

Wie durch die akzeptierte Antwort bearbeitet, können Sie jetzt ein Drittanbieter-Plugin cocoapods-deintegrate verwenden , . Es ist zuverlässig, da es von einem CocoaPods-Kernteammitglied erstellt wurde.

Es sind jedoch noch einige Dateien übrig:

Podfile
Podfile.lock
Workspace

Sie können sie manuell aus Ihrem Projekt entfernen ,, aber es gibt auch ein anderes Tool, mit dem Sie sie reinigen können, dank Cocoapods-Clean .

Schließlich ist die Deinstallationsarbeit noch nicht abgeschlossen. cocoapods-cleanReinigen Sie das nicht, sondern führen Sie Folgendes Podfileaus:

rm Podfile

Prost!

Vor dem Entfernen sollten Sie sicherstellen, dass Sie ein Backup Ihres Projekts haben!

Allen
quelle
1
Das Problem bei der Deintegration ist, dass es wie Cocoapods auf Edelsteinen und Rubinen beruht. Derzeit versuche ich, Schoten wegen Schwierigkeiten mit El Capitan und Edelsteinen zu entfernen. Deinstallationsprogramme sollten als eigenständige Binärdateien verfügbar sein.
nheagy
Vielen Dank und weitere Details hier, wenn Sie nach einer erfolgreichen Deintegration auf Probleme stoßen.
Adam Johns
Danke, das war reibungslos mit 'Cocoapods-Deintegrate'
Shaikh
46

pod deintegrate

Nach diesem Cmd sind in Ihrem Projekt keine Spuren von Cocoapods mehr vorhanden.

Ihr Arbeitsbereich, der auf das Pods-Projekt verweist, bleibt jedoch erhalten. Sie müssen die folgenden 3 Dateien manuell entfernen:

xx.xcworkspace
Podifle
Podfile.lock

Dann können Sie Ihr Projekt wieder verwenden.

Habe Spaß!

Testen Sie die CocoaPod-Version = 1.2.0

Mistdon
quelle
Schön, hat auch hier gearbeitet, nachdem ich bereits die meisten Sachen von Hand gelöscht habe.
Brainray
Deintegrate macht Ihren Arbeitsbereich kaputt. Seien Sie vorsichtig, wenn Sie es brauchen.
SafeFastExpressive
1
@mistdon du hast dir das zweite Mal das Leben gerettet.
Dheeraj D
20

Ich habe alle diese Antworten ausprobiert, aber es wurde immer noch nicht erstellt. Schließlich habe ich versucht:

pod deintegrate
pod install

was tatsächlich funktioniert hat!

Es ist so, als müssten alle Pod-Skripte aus Ihren Erstellungsphasen entfernt und wieder hinzugefügt werden, damit es funktioniert, zumindest in meinem Fall.

David Rees
quelle
Besonders hilfreich, wenn Sie ein Projekt mit integrierten Pods umbenannt haben.
Bisma
12

Die Antwort von Keith ist großartig - ich möchte nur darauf hinweisen, dass Cocoapods 0.36 beginnt, dynamische Frameworks zu unterstützen , wenn Sie 'use_frameworks!' Verwenden. In Ihrem 'Podfile' und wenn Sie die Cocoapods entfernen möchten, müssen Sie Folgendes tun:

  • In der Build PhasesLöschphase Embed Pods Frameworks.
Chao Ruan
quelle
Recht. Wenn Sie dies nicht tun, werden Buildfehler angezeigt.
Zia
Wenn es andere Dateien gibt, die sich Podsinnerhalb von Build Phases löschen, löschen Sie sie ebenfalls.
Luckyging3r
8

Es kann zwei Aspekte geben, mit denen Entwickler konfrontiert sein können.

  • Entweder möchte er Pods komplett aus dem Projekt entfernen
  • Entwickler möchten bestimmte Framework aus Projekt von Pods deinstallieren.

Im ersten Fall müssen Sie 'pod deintegrate' verwenden und einige Schritte ausführen, die in den obigen Antworten aufgeführt sind.

Für den zweiten Fall, wenn Sie ein bestimmtes Framework deinstallieren möchten, das dort auf sehr einfache Weise in Ihrer Pod-Datei installiert ist, kommentieren Sie einfach das Framework, das Sie deinstallieren möchten, und führen Sie den Befehl pod install aus.

# 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

Hier möchte ich Facebook- und Parse-Frameworks (die mit Pods installiert wurden) und nicht iCarousel deinstallieren. Deshalb habe ich meine Pod-Datei wie oben aktualisiert.

Wenn ich jetzt die Pod-Installation ausführe, bleibt iCarousel wie in meinem Projekt und entfernt Facebook und Parse.

SZ.
quelle
4
  1. Das erste , was Sie tun müssen, ist , die entfernen Podfile, Podfile.lockdie PodsOrdner und die erzeugte Arbeitsbereich.
  2. Als nächstes wird in der .xcodeproj, die Verweise auf die Entfernen - Pods.xcconfigDateien und die libPods.aDatei.
  3. Löschen Sie auf der Registerkarte Projektphasen erstellen die Abschnitte Pods Manifest.lock prüfen (geöffnet), Pods-Ressourcen kopieren (unten) und Pod-Ressourcen einbetten (unten).
  4. Entfernen Pods.framework.

Das einzige, was Sie möglicherweise tun möchten, ist, einige der Bibliotheken einzuschließen, die Sie zuvor verwendet haben. Sie können dies tun, indem Sie einfach alle Ordner in den Pods-Ordnern in Ihr Projekt ziehen (ich ziehe es vor, sie in meinen Ordner "Unterstützende Dateien" zu legen).

Es hat bei mir funktioniert.

AG
quelle
4
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile
Dynamische Methoden
quelle
Nachdem Sie alle Cocoapods losgeworden sindgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna
3

Wenn dies nicht funktioniert, versuchen Sie
1. das Projekt zu reinigen.
2. gelöschte abgeleitete Daten.

Wenn Sie nicht wissen, wie abgeleitete Daten gelöscht werden sollen, klicken Sie hier

Wie "abgeleitete Daten löschen" in Xcode6?

Ego Slayer
quelle
2

Löschen Sie alle zugehörigen Pod-Dateien:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

und im Projektnavigator:

Klicken Sie auf den Projektnamen (blaues Symbol) -> Ziele (*) -> Build-Phasen -> Entfernen Sie "[CP] Check Pods manifest.lock" (klicken Sie auf "x").

(*) Klicken Sie auf den Projektnamen. Möglicherweise müssen Sie auf "Projekt- und Zielliste anzeigen" klicken, um zuerst die Seitenleiste anzuzeigen.

Postwagen C.
quelle
Ich habe auch den Ordner "Pods" gelöscht, weil ich nur einen einzigen verwendet habe, andernfalls lösche ich einfach den einzelnen Ordner "NameOfThePod" im Ordner "Pods".
Neph
1

Ich werde kurz schreiben, was ich getan habe (um alle CocoaPods aus meinem Projekt zu löschen).

  1. Löschen Sie alle hinzugefügten Ordner (Frameworks, Pods, ...).
  2. Löschen Sie alle hinzugefügten Dateien (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...).
  3. Hinterlassen Sie einfach Ihre Originale (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. Entfernen Sie die Framework-Referenz aus dem Projekt auf xcode

So entfernen Sie die Framework-Referenz aus xcode:

  1. Verwenden Sie den Projektnavigator
  2. Wählen Sie Projekt
  3. Wählen Sie Zielprojekt
  4. Wählen Sie Build-Phasen aus den oberen Optionen
  5. Übernehmen Sie die Standardgruppen (Zielabhängigkeiten, Quellen kompilieren, Binär mit Bibliotheken verknüpfen, Bundle-Ressourcen kopieren) und löschen Sie alle anderen
SoliQuiD
quelle
1

Wenn Sie nur einen Pod entfernen und andere, die Sie möglicherweise installiert haben, behalten möchten, öffnen Sie die Poddatei in Ihrem App-Verzeichnis und löschen Sie die zu entfernende. Navigieren Sie dann mit dem Terminal zu Ihrem App-Verzeichnis und geben Sie Folgendes ein:

pod update

Dadurch wird der Pod entfernt, den Sie aus der Poddatei entfernt haben. Sie werden sehen, dass es im Terminal entfernt wurde:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Beachten Sie, dass diese Methode auch Aktualisierungen für die anderen Pods in Ihrer Poddatei abruft. Sie können oder können das nicht wollen.

TM Lynch
quelle
Gemäß der Dokumentation sollten Sie pod installzum Hinzufügen / Entfernen von Pods verwenden. Dies dient speziell dazu, Aktualisierungen zu vermeiden, wie Sie hier gesagt haben. Sie können mehr über ihre 'Guides' zu diesem Thema lesen
Mark A. Donohoe
0

Verwenden Sie die Befehle dieses Terminals (Vergessen Sie nicht, sudo am Anfang neuer Zeilen zu verwenden):

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)

Deinstallieren Sie die Liste nacheinander wie folgt:

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
CrownFord
quelle
0

Ich konnte meine Pods im Projekt mit der CocoaPods-App (Version 1.5.2) entfernen. Danach habe ich nur die Dateien podfile, podfile.lock und xcworkspace im Ordner gelöscht.

Berkant
quelle
0

Geben Sie hier die Bildbeschreibung ein

bildliche Darstellung detailliert

vilas deshmukh
quelle
0

Ich glaube nicht, dass Sie sich mehr integrieren müssen. Ich konnte es mit dem folgenden Befehl im Terminal tun:

Pod installieren

und es entfernte automatisch diejenigen, die nicht mehr in der Poddatei sind

Özgür Cem Birler
quelle