¿Cómo eliminar CocoaPods de un proyecto?

472

¿Cuál es la forma correcta de eliminar CocoaPods de un proyecto? Quiero eliminar todo el CocoaPod. Debido a algunas limitaciones impuestas por mi cliente, no puedo usarlo. Necesito tener solo un xcodeproj en lugar de un xcworkspace.

Andres
fuente
12
Y recuerde: ¡la próxima vez use git y solo gírelo!
Dan Rosenstark
35
Runpod deintegrate
onmyway133

Respuestas:

1032

Es posible eliminar CocoaPods de un proyecto, pero actualmente no está automatizado por la CLI. Primero, si el único problema que tiene es no poder usar un xcworkspace, puede usar CocoaPods con solo xcodeprojs usando la --no-integratebandera que producirá el Pods.xcodeprojespacio de trabajo pero no un espacio de trabajo. Luego puede agregar esto xcodeprojcomo un subproyecto a su main xcodeproj.

Si realmente desea eliminar toda la integración de CocoaPods, debe hacer algunas cosas:

NOTA editar algunas de estas cosas si se hace incorrectamente podría romper su proyecto principal. Le recomiendo encarecidamente que verifique sus proyectos en el control de origen por si acaso. Además, estas instrucciones son para la versión CocoaPods 0.39.0, podrían cambiar con nuevas versiones.

  1. Elimine los archivos independientes ( Podfile Podfile.locky su Podsdirectorio)
  2. Eliminar el generado xcworkspace
  3. Abra su xcodeprojarchivo, elimine las referencias a Pods.xcconfigy libPods.a(en el Frameworksgrupo)
  4. Bajo su Build Phasesla eliminación Copy Pods Resources, Embed Pods Frameworksy Check Pods Manifest.lockfases.
  5. Esto puede parecer obvio, pero necesitará integrar las bibliotecas de terceros de alguna otra manera o eliminar las referencias a ellas de su código.

Después de esos pasos, debería configurar uno xcodeprojque existiera antes de integrar CocoaPods. Si me perdí algo, avíseme y lo editaré.

Además, siempre estamos buscando sugerencias sobre cómo mejorar CocoaPods, así que si tiene algún problema, envíelo en nuestro rastreador de problemas para que podamos encontrar una manera de solucionarlo.

EDITAR

Como lo muestra Jack Wu en los comentarios, hay un complemento de CocoaPods de terceros que puede automatizar estos pasos por usted. Se puede encontrar aquí . Tenga en cuenta que es un complemento de terceros y que no siempre se actualiza cuando CocoaPods lo está. También tenga en cuenta que está hecho por un miembro del equipo central de CocoaPods para que el problema no sea un problema.

Keith Smiley
fuente
Gracias a Dios por esta publicación. Esta pesadilla me jodió ... stackoverflow.com/questions/9863836/library-not-found-for-lpods y he tenido que eliminar el CP por ahora. Gracias
Fattie
1
(En mi caso, marzo de 2014, se relacionaba con toda la locura de "Parse / Facebook liraries / architecture settings". Podría ayudar a alguien a leer. Nuevamente, gracias.)
Fattie
Estoy a punto de hacer esto y la razón es que regularmente necesita recompilar todos los proyectos de Pod a pesar de que ninguno de ellos ha sido tocado, por lo que ha disminuido considerablemente los tiempos de construcción.
theLastNightTrain
24
Voy a dejar esto aquí porque funcionó muy bien para mí: github.com/kylef/cocoapods-deintegrate
Jack
1
Si alguien se pregunta por qué están apareciendo un millón de advertencias en Xcode, es porque necesita confirmar sus cambios en git / svn
Achintya Ashok
353

pod deintegratey pod cleanson dos comandos designados para eliminar CocoaPod de su proyecto / repositorio.

Aquí está el conjunto completo de comandos:

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

La solución original se encontró aquí: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

Documentación de CocoaPod en pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate

DevGansta
fuente
3
gracias, funciona (casi) para mí. Después de estos comandos, recibí un error de vinculador durante la compilación. La solución fue eliminar el "marco de Pods" de los objetivos-> Fases de construcción-> Enlace binario con bibliotecas
uldo
Desde la versión 1.0.0beta8, los Cocoapods crean extrañas fases de construcción con tales nombres: 📦 Comprobar Pods Manifest.lock. Compruebe si se eliminan después de desintegrar.
Timur Bernikovich
Tenga en cuenta que si está en una máquina que no ha instalado cocoapods, necesitará instalar cocoapods gem para que el comando pod funcione. Esto puede suceder si restaura o copia un proyecto en un nuevo sistema.
NoelHunter
65

Para eliminar las vainas de un proyecto por completo, primero debe instalar dos cosas ... son las siguientes (suponiendo que ya tenga las vainas de cacao instaladas en su sistema) ...

  1. Complemento de desintegración de cacaopods
  2. Complemento Cocoapods-Clean

Instalación

  1. Complemento de desintegración de cacaopods

    Use este siguiente comando en su terminal para instalarlo.

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

    Use este siguiente comando en su terminal para instalarlo.

    sudo gem install cocoapods-clean

Uso

En primer lugar, vaya a la carpeta de su proyecto utilizando el comando habitual como ..

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

Ahora use esos dos complementos para eliminarlo por completo de la siguiente manera ...

  1. Complemento de desintegración de cacaopods

    Utilice este siguiente comando en su terminal para desintegrar los pods de su proyecto primero.

     pod deintegrate

Vainas desintegradoras

  1. Complemento Cocoapods-Clean

    Después de la desintegración del pod de su proyecto, use este comando siguiente en su terminal para limpiarlo completamente.

     pod clean

    Después de completar las tareas anteriores, debería haber el Podfile todavía restante en el directorio de su proyecto ... Simplemente elimínelo manualmente o use este siguiente comando en el terminal ...

     rm Podfile

Eso es todo ... Ahora tienes tu proyecto libre de pods ... Limpiado.

Eliminando Cocoapods del sistema.

De cualquier forma, intente utilizar el siguiente comando en su terminal para desinstalar / eliminar las vainas de coca de su sistema.

sudo gem uninstall cocoapods

Eliminará las vainas de coca automáticamente.

Gracias. Espero que esto haya ayudado.

en la terminación
fuente
55
Whoa! pod clean elimina tu espacio de trabajo , ¡incluso si tienes otros proyectos en él! ¡Ten cuidado!
1
@charl En caso de limpiar vainas de su único proyecto, debe borrar el espacio de trabajo ... pero el método obviamente no es aplicable para múltiples proyectos asociados con el espacio de trabajo único ... :(
onCompletion
¡¡Correcto!! Exactamente lo que quería
Vigneshwaran.m
49

Creo que hay una manera más fácil de hacerlo.

Según lo editado por la respuesta aceptada, ahora puede usar un complemento de terceros cocoapods-desintegrate , es confiable porque está hecho por un miembro del equipo central de CocoaPods.

Pero, todavía quedan algunos archivos:

Podfile
Podfile.lock
Workspace

Puede eliminarlos de su proyecto manualmente, pero también hay otra herramienta para ayudarlo a limpiarlos, gracias a cocoapods-clean .

Finalmente, el trabajo de desinstalación aún no se ha completado, cocoapods-cleanno limpie Podfile, solo ejecute:

rm Podfile

¡Salud!

¡Antes de eliminarlo, debe asegurarse de tener una copia de seguridad de su proyecto!

Allen
fuente
1
El problema con la desintegración es que depende de gemas y rubí, al igual que los cacaopodos. Actualmente estoy buscando eliminar las vainas debido a dificultades con El Capitán y las gemas. Los desinstaladores deberían estar disponibles como binarios independientes.
nheagy
Gracias y más detalles aquí si tiene problemas después de una desintegración exitosa.
Adam Johns
Gracias que fue liso por medio del 'cocoapods-deintegrate'
Shaikh
46

pod deintegrate

Después de este cmd, no quedan rastros de Cocoapods en su proyecto.

Pero su espacio de trabajo que hace referencia al proyecto Pods aún permanece, debe eliminar manualmente los siguientes 3 archivos:

xx.xcworkspace
Podifle
Podfile.lock

Entonces puedes usar tu proyecto nuevamente.

¡Que te diviertas!

Prueba CocoaPod versión = 1.2.0

mistdon
fuente
Nice, también funcionó aquí después de haber eliminado la mayoría de las cosas a mano.
brainray
desintegrar armas nucleares su espacio de trabajo. Tenga cuidado si lo necesita.
SafeFastExpressive
1
@mistdon salvaste tu vida por segunda vez.
Dheeraj D
20

Intenté todas estas respuestas pero todavía no se compilaba, eventualmente intenté:

pod deintegrate
pod install

que realmente funcionó!

Es como si necesita eliminar todos los scripts de pod de sus fases de compilación y volver a agregarlos para que funcione, al menos en mi caso.

David Rees
fuente
Especialmente útil, si cambió el nombre de un proyecto con pods integrados.
bisma
12

La respuesta de Keith es excelente: solo quiero señalar que debido a que Cocoapods 0.36 está comenzando a admitir Dynamic Frameworks , si está utilizando 'use_frameworks'. en su 'Podfile' y desea eliminar los Cocoapods, debe hacer esto:

  • Bajo Build Phasesborrado Embed Pods Frameworksfase.
Chao Ruan
fuente
Derecha. Si no hace esto, obtendrá errores de compilación.
Zia
Si hay otros archivos relacionados con el Podsinterior, Build Phases elimínelos también.
luckyging3r
8

Puede haber dos aspectos que el desarrollador pueda enfrentar.

  • O quiere eliminar las vainas completamente del proyecto
  • El desarrollador quiere desinstalar un marco particular del proyecto desde los pods.

En el primer caso, debe usar 'pod desintegrate' y seguir varios pasos que se mencionan en las respuestas anteriores.

Para el segundo caso, si desea desinstalar cualquier marco particular que esté instalado allí de una manera muy simple disponible en su archivo pod, simplemente comente el marco que desea desinstalar y ejecute el comando de instalación de pod.

# 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

Aquí quiero desinstalar los marcos de facebook y parse (que se instalaron usando pods) y no iCarousel, es por eso que he actualizado mi archivo de pod como el anterior.

Ahora, si ejecuto la instalación de pod, mantendrá iCarousel como está en mi proyecto y eliminará Facebook y analizará.

SZ.
fuente
4
  1. Lo primero que tendrá que hacer es quitar la Podfile, Podfile.lockla Podscarpeta y el espacio de trabajo generados.
  2. A continuación, en el .xcodeproj, elimine las referencias a los Pods.xcconfigarchivos y al libPods.aarchivo.
  3. Dentro de la pestaña del proyecto Build Phases, elimine la sección Check Pods Manifest.lock (abrir), la sección Copiar recursos de pods (abajo) y los recursos de pod incrustados (abajo).
  4. Remover Pods.framework.

Lo único que puede hacer es incluir algunas de las bibliotecas que estaba utilizando antes. Puede hacer esto simplemente arrastrando las carpetas en las carpetas de pods a su proyecto (prefiero ponerlas en mi carpeta Archivos de soporte).

Funcionó para mi.

AG
fuente
4
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile
Métodos dinámicos
fuente
Después de deshacerse de todos los cocoapodsgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna
2

Eliminar todos los archivos pod relacionados:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

y en el Navegador de proyectos:

Haga clic en el nombre del proyecto (icono azul) -> Objetivos (*) -> Fases de compilación -> Eliminar "[CP] Comprobar Pods manifiestos.lock" (haga clic en la "x")

(*) Haga clic en el nombre del proyecto, puede que tenga que hacer clic en "Mostrar lista de proyectos y objetivos" para ver primero la barra lateral.

Mailavan C
fuente
También eliminé la carpeta "Pods" porque solo estaba usando una sola, de lo contrario simplemente eliminé la carpeta "NameOfThePod" dentro de la carpeta "Pods".
Neph
1

Voy a escribir lo que he hecho muy brevemente (para eliminar CocoaPods de mi proyecto).

  1. eliminar cualquier carpeta agregada (frameworks, Pods, ...)
  2. elimine cualquier archivo agregado (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. solo deje sus originales (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. eliminar referencia de marco del proyecto en xcode

Para eliminar la referencia de marco de xcode:

  1. Use el Navegador de proyectos
  2. Seleccionar proyecto
  3. Seleccione el PROYECTO de destino
  4. Seleccione Crear fases de las mejores opciones
  5. deje los grupos predeterminados (dependencias de destino, compilar orígenes, binario vinculado con bibliotecas, copiar recursos de paquete) y eliminar cualquier otro
SoliQuiD
fuente
1

Si solo desea eliminar un pod y conservar otros que haya instalado, abra el podfile en el directorio de su aplicación y elimine el que desea eliminar. Luego navegue a su directorio de aplicaciones usando la terminal y escriba:

pod update

Esto eliminará el pod que eliminó del podfile. Verá que se ha eliminado en la terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Tenga en cuenta que este método también extraerá cualquier actualización a los otros pods en su podfile. Puede o no querer eso.

TM Lynch
fuente
Según la documentación, debe usar pod installpara agregar / eliminar pods. Esto es específicamente para evitar la actualización como dijiste aquí. Puede leer más sobre sus 'Guías' sobre este mismo tema ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe
0

Use los comandos de estos terminales (no olvide usar sudo al comienzo de las nuevas líneas):

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)

Desinstale la lista uno por uno de esta manera:

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
fuente
0

Pude eliminar mis pods en el proyecto usando la aplicación CocoaPods (Versión 1.5.2). Después solo eliminé los archivos podfile, podfile.lock y xcworkspace de la carpeta.

Berkant
fuente
0

ingrese la descripción de la imagen aquí

representación pictórica detallada

vilas deshmukh
fuente
0

No creo que necesites desintegrarte más. Pude hacerlo con el siguiente comando en la terminal:

instalación de pod

y eliminó automáticamente los que ya no están en el podfile

Özgür Cem Birler
fuente