Comment supprimer CocoaPods d'un projet?


472

Quelle est la bonne façon de supprimer CocoaPods d'un projet? Je souhaite supprimer l'intégralité de CocoaPod. En raison de certaines limitations imposées par mon client, je ne peux pas l'utiliser. J'ai besoin d'un seul xcodeproj au lieu d'un xcworkspace.


12
Et rappelez-vous: la prochaine fois, utilisez git et faites-le simplement reculer!
Dan Rosenstark

35
Runpod deintegrate
onmyway133

Réponses:


1032

La suppression de CocoaPods d'un projet est possible, mais n'est pas actuellement automatisée par la CLI. Tout d'abord, si le seul problème que vous avez est de ne pas pouvoir utiliser un, xcworkspacevous pouvez utiliser CocoaPods avec juste des xcodeprojs en utilisant l' --no-integrateindicateur qui produira le Pods.xcodeprojmais pas un espace de travail. Ensuite, vous pouvez l'ajouter en xcodeprojtant que sous-projet à votre principal xcodeproj.

Si vous voulez vraiment supprimer toutes les intégrations CocoaPods, vous devez faire quelques choses:

REMARQUE: la modification de certaines de ces choses si elles ne sont pas effectuées correctement peut interrompre votre projet principal. Je vous encourage fortement à vérifier vos projets en contrôle de code source au cas où. Ces instructions concernent également la version CocoaPods 0.39.0, elles peuvent changer avec les nouvelles versions.

  1. Supprimez les fichiers autonomes ( Podfile Podfile.locket votre Podsrépertoire)
  2. Supprimer le généré xcworkspace
  3. Ouvrez votre xcodeprojfichier, supprimez les références à Pods.xcconfiget libPods.a(dans le Frameworksgroupe)
  4. Sous votre Build Phasessupprimer les Copy Pods Resources, Embed Pods Frameworkset les Check Pods Manifest.lockphases.
  5. Cela peut sembler évident, mais vous devrez intégrer les bibliothèques tierces d'une autre manière ou supprimer les références à celles-ci de votre code.

Après ces étapes, vous devez être défini avec un seul xcodeprojqui existait avant d'intégrer CocoaPods. Si j'ai raté quelque chose, faites-le moi savoir et je le modifierai.

De plus, nous recherchons toujours des suggestions pour améliorer CocoaPods. Si vous rencontrez des problèmes, veuillez les soumettre dans notre outil de suivi des problèmes afin que nous puissions trouver un moyen de les résoudre!

ÉDITER

Comme l'a montré Jack Wu dans les commentaires, il existe un plugin CocoaPods tiers qui peut automatiser ces étapes pour vous. Il peut être trouvé ici . Notez qu'il s'agit d'un plugin tiers et qu'il n'est pas toujours mis à jour lorsque CocoaPods l'est. Notez également qu'il est fait par un membre de l'équipe principale de CocoaPods afin que le problème ne soit pas un problème.


Dieu merci pour ce post. J'ai été foutu par ce cauchemar ... stackoverflow.com/questions/9863836/library-not-found-for-lpods et j'ai dû supprimer CP pour l'instant. Merci
Fattie

1
(Dans mon cas - mars 2014 - cela concernait toute la folie «Analyser / Facebook liraries / architecture settings». Cela pourrait aider quelqu'un à lire. Encore merci.)
Fattie

Je suis sur le point de le faire et la raison en est qu'il doit régulièrement recompiler tous les projets Pod même si aucun d'entre eux n'a été touché, donc cela a considérablement ralenti mes temps de construction.
theLastNightTrain

24
Je vais laisser cela ici car cela a très bien fonctionné pour moi: github.com/kylef/cocoapods-deintegrate
Jack

1
Si quelqu'un se demande pourquoi un million d'avertissements apparaissent dans Xcode, c'est parce que vous devez valider vos modifications sur git / svn
Achintya Ashok

353

pod deintegrateet pod cleansont deux commandes désignées pour supprimer CocoaPod de votre projet / référentiel.

Voici l'ensemble complet des commandes:

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

La solution d'origine a été trouvée ici: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

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


3
merci, travaille (presque) pour moi. Après ces commandes, j'ai eu une erreur de l'éditeur de liens lors de la compilation. La solution consistait à supprimer le "framework Pods" de Targets-> Build Phases-> Link Binary With Libraries
uldo

Depuis la version 1.0.0beta8, les Cocoapods créent d'étranges phases de construction avec ces noms: 📦 Vérifiez Pods Manifest.lock. Vérifiez s'ils sont retirés après la désintégration.
Timur Bernikovich

Veuillez noter que si vous êtes sur une machine sur laquelle aucun cocoapod n'est installé, vous devrez effectuer l'installation de cocoapods par gem avant que la commande pod ne fonctionne. Cela peut se produire si vous restaurez ou copiez un projet sur un nouveau système.
NoelHunter

65

Pour supprimer complètement les pods d'un projet, vous devez d'abord installer deux choses ... ce sont les suivantes (en supposant que vous avez déjà des cacao-pods installés dans votre système.) ...

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

Installation

  1. Plugin Cocoapods-Deintegrate

    Utilisez cette commande suivante sur votre terminal pour l'installer.

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

    Utilisez cette commande suivante sur votre terminal pour l'installer.

    sudo gem install cocoapods-clean

Usage

Tout d'abord, accédez à votre dossier de projet en utilisant la commande habituelle comme ..

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

Utilisez maintenant ces deux plugins pour le supprimer complètement comme suit.

  1. Plugin Cocoapods-Deintegrate

    Utilisez cette commande suivante sur votre terminal pour désintégrer les pods de votre projet en premier.

     pod deintegrate

Gousses de désintégration

  1. Plugin Cocoapods-Clean

    Après la désintégration du pod de votre projet, utilisez cette commande suivante sur votre terminal pour le nettoyer complètement.

     pod clean

    Après avoir terminé les tâches ci-dessus, il devrait rester le Podfile dans le répertoire de votre projet ... Supprimez-le manuellement ou utilisez cette commande suivante sur le terminal.

     rm Podfile

C'est tout ... Maintenant, votre projet est exempt de modules ... Nettoyé.

Suppression des cocoapods du système.

Dans tous les cas, essayez d'utiliser la commande suivante sur votre terminal pour désinstaller / supprimer les coca-pods de votre système.

sudo gem uninstall cocoapods

Il supprimera automatiquement les coca-pods.

Merci. J'espère que cela vous a aidé.


5
Whoa! pod clean supprime votre espace de travail , même si vous avez d'autres projets dedans! Faites attention!

1
@charl En cas de nettoyage des modules de votre projet unique, vous devez effacer l'espace de travail ... mais la méthode n'est évidemment pas applicable pour plusieurs projets associés à l'espace de travail unique .... :(
onCompletion

tache !! Exactement ce que je voulais
Vigneshwaran.m

49

Je pense qu'il existe un moyen plus simple de le faire.

Comme édité par la réponse acceptée, vous pouvez maintenant utiliser un plugin tiers cocoapods-deintegrate , il est fiable car il est fait par un membre de l'équipe principale de CocoaPods.

Mais, il reste encore des fichiers:

Podfile
Podfile.lock
Workspace

Vous pouvez les supprimer de votre projet manuellement , mais il existe également un autre outil pour vous aider à les nettoyer, merci cocoapods-clean .

Enfin, le travail de désinstallation n'est toujours pas terminé, cocoapods-cleanne nettoyez pas le Podfile, exécutez simplement:

rm Podfile

À votre santé!

Avant de supprimer, vous devez vous assurer d'avoir une sauvegarde de votre projet!


1
fwiw le problème avec la désintégration est qu'elle repose sur des pierres précieuses et du rubis, tout comme les cocoapodes. Actuellement, je cherche à supprimer les pods en raison de difficultés avec El Capitan et les gemmes. Les programmes de désinstallation doivent être disponibles en tant que fichiers binaires autonomes.
nheagy

Merci et plus de détails ici si vous rencontrez des problèmes après une désintégration réussie.
Adam Johns

Merci qui était lisse à l' aide « cocoapods-intégration inverse »
Shaikh

46

pod deintegrate

Après cette cmd, plus aucune trace de Cocoapods dans votre projet.

Mais votre espace de travail référençant le projet Pods reste toujours, vous devez supprimer manuellement les 3 fichiers ci-dessous:

xx.xcworkspace
Podifle
Podfile.lock

Vous pourrez ensuite réutiliser votre projet.

S'amuser!

Tester la version CocoaPod = 1.2.0


Nice, a également travaillé ici après avoir déjà supprimé le plus de choses à la main.
brainray

désintégrez votre espace de travail. Soyez prudent si vous en avez besoin.
SafeFastExpressive

1
@mistdon vous y avez sauvé une deuxième fois.
Dheeraj D

20

J'ai essayé toutes ces réponses mais ça ne pouvait toujours pas se construire, finalement j'ai essayé:

pod deintegrate
pod install

qui a vraiment fonctionné!

C'est comme s'il fallait supprimer tous les scripts de pod de vos phases de construction et les rajouter à nouveau pour que cela fonctionne, du moins dans mon cas.


Particulièrement utile, si vous avez renommé un projet avec des modules intégrés.
bisma

12

La réponse de Keith est excellente - je veux juste souligner que parce que Cocoapods 0.36 commence à prendre en charge les cadres dynamiques , si vous utilisez 'use_frameworks!' dans votre 'Podfile' et que vous souhaitez supprimer les Cocoapods, vous devez le faire:

  • En phase de Build Phasessuppression Embed Pods Frameworks.

Droite. Si vous ne le faites pas, vous obtiendrez des erreurs de construction.
Zia

S'il y a d'autres fichiers traitant de l' Podsintérieur, Build Phases supprimez-les également.
luckyging3r

8

Le développeur peut être confronté à deux aspects.

  • Soit il veut supprimer complètement les pods du projet
  • le développeur souhaite désinstaller un cadre particulier du projet à partir des pods.

Dans le premier cas, vous devez utiliser «pod deintegrate» et suivre plusieurs étapes mentionnées dans les réponses ci-dessus.

Pour le deuxième cas, c'est si vous souhaitez désinstaller un framework particulier qui y est installé de manière très simple disponible dans votre fichier pod, commentez simplement le framework que vous souhaitez désinstaller et exécutez la commande 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

Ici, je veux désinstaller Facebook et analyser les frameworks (qui ont été installés à l'aide de pods) et non iCarousel, c'est pourquoi j'ai mis à jour mon fichier pod comme ci-dessus.

Maintenant, si je lance l'installation de pod, il conservera iCarousel tel qu'il est dans mon projet et supprimera Facebook et analysera.


4
  1. La première chose que vous devez faire est de supprimer le Podfile, Podfile.lock, le Podsdossier et l'espace de travail généré.
  2. Ensuite, dans le .xcodeproj, supprimez les références aux Pods.xcconfigfichiers et au libPods.afichier.
  3. Dans l'onglet de projet Build Phases, supprimez la section Check Pods Manifest.lock (ouverte), la section Copy Pods Resources (en bas) et Embed Pod Resources (en bas).
  4. Retirez Pods.framework.

La seule chose que vous voudrez peut-être faire est d'inclure certaines des bibliothèques que vous utilisiez auparavant. Vous pouvez le faire en faisant simplement glisser les dossiers dans les dossiers pods dans votre projet (je préfère les mettre dans mon dossier Supporting Files).

Ça a marché pour moi.


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

Après s'être débarrassé de tous les cocoapodsgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

Supprimez tous les fichiers pod associés:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

et dans le Navigateur du projet:

Cliquez sur le nom du projet (icône bleue) -> Cibles (*) -> Phases de construction -> Supprimer "[CP] Check Pods manifests.lock" (cliquez sur le "x")

(*) Cliquez sur le nom du projet, vous devrez peut-être cliquer sur "Afficher le projet et la liste des cibles" pour voir la barre latérale en premier.


J'ai également supprimé le dossier "Pods" car je n'en utilisais qu'un seul, sinon supprimez simplement le dossier "NameOfThePod" dans le dossier "Pods".
Neph

1

Je vais écrire ce que iv a fait très brièvement (pour supprimer tous les CocoaPods de mon projet) ..

  1. supprimer tout dossier ajouté (frameworks, Pods, ...)
  2. supprimer tous les fichiers ajoutés (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. laissez vos originaux (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. supprimer la référence du framework du projet sur xcode

Pour supprimer la référence du framework de xcode:

  1. Utilisez le navigateur de projet
  2. Sélectionnez un projet
  3. Sélectionnez le projet cible
  4. Sélectionnez Build Phases dans les principales options
  5. laissez les groupes par défaut (dépendances cibles, sources de compilation, binaire lié avec bibliothèques, ressources de bundle de copie) et supprimez tout autre


1

Si vous souhaitez simplement supprimer un pod et conserver les autres que vous avez peut-être installés, ouvrez le podfile dans le répertoire de votre application et supprimez celui que vous souhaitez supprimer. Accédez ensuite au répertoire de votre application à l'aide du terminal et saisissez:

pod update

Cela supprimera le pod que vous avez supprimé du podfile. Vous verrez qu'il a été supprimé dans le terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Notez que cette méthode extraira également toutes les mises à jour des autres pods de votre podfile. Vous pouvez ou non vouloir cela.


Selon la documentation, vous devez utiliser pod installpour ajouter / supprimer des pods. C'est précisément pour éviter la mise à jour comme vous l'avez dit ici. Vous pouvez en savoir plus sur leurs 'Guides' sur ce sujet même ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe

0

Utilisez les commandes de ce terminal (n'oubliez pas d'utiliser sudo au début des nouvelles lignes):

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)

Désinstallez la liste une par une comme ceci:

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

J'ai pu supprimer mes pods dans le projet en utilisant l'application CocoaPods (version 1.5.2). Ensuite, je n'ai supprimé que les fichiers podfile, podfile.lock et xcworkspace dans le dossier.



0

Je ne pense plus que vous ayez besoin de vous désintégrer. J'ai pu le faire avec la commande suivante dans le terminal:

installation de pod

et il a automatiquement supprimé ceux qui ne sont plus dans le podfile

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.