Como remover CocoaPods de um projeto?

472

Qual é a maneira correta de remover o CocoaPods de um projeto? Eu quero remover todo o CocoaPod. Devido a algumas limitações impostas pelo meu cliente, não posso usá-lo. Eu preciso ter apenas um xcodeproj em vez de um xcworkspace.

Andres
fonte
12
E lembre-se: da próxima vez, use o git e reverta-o!
Dan Rosenstark
35
Executarpod deintegrate
onmyway133

Respostas:

1031

É possível remover o CocoaPods de um projeto, mas atualmente não é automatizado pela CLI. Primeiro, se o único problema que você tem é não poder usar um, xcworkspacevocê pode usar CocoaPods com apenas xcodeprojs usando a --no-integrateflag que produzirá o Pods.xcodeprojespaço de trabalho, mas não o espaço. Em seguida, você pode adicionar isso xcodeprojcomo um subprojeto ao seu principal xcodeproj.

Se você realmente deseja remover toda a integração do CocoaPods, precisa fazer algumas coisas:

NOTA editar algumas dessas coisas, se feito incorretamente, pode interromper o projeto principal. É altamente recomendável que você verifique seus projetos no controle de origem, apenas por precaução. Além disso, essas instruções são para a versão do CocoaPods 0.39.0, elas podem mudar com as novas versões.

  1. Exclua os arquivos independentes ( Podfile Podfile.locke seu Podsdiretório)
  2. Excluir o gerado xcworkspace
  3. Abra seu xcodeprojarquivo, exclua as referências Pods.xcconfige libPods.a(no Frameworksgrupo)
  4. Em sua Build Phasesexclusão Copy Pods Resources, as fases Embed Pods Frameworkse Check Pods Manifest.lock.
  5. Isso pode parecer óbvio, mas você precisará integrar as bibliotecas de terceiros de outra maneira ou remover referências a elas do seu código.

Após essas etapas, você deve definir um único xcodeproj que já existia antes de integrar o CocoaPods. Se eu perdi alguma coisa, avise-me e editarei isso.

Também estamos sempre procurando sugestões de como melhorar o CocoaPods. Se você tiver algum problema, envie-o em nosso rastreador de problemas para que possamos encontrar uma maneira de corrigi-lo!

EDITAR

Como mostra Jack Wu nos comentários, existe um plug-in CocoaPods de terceiros que pode automatizar essas etapas para você. Pode ser encontrado aqui . Observe que é um plug-in de terceiros e nem sempre pode ser atualizado quando o CocoaPods é. Observe também que é feito por um membro da equipe principal do CocoaPods, para que o problema não seja um problema.

Keith Smiley
fonte
Graças a Deus por este post. Fiquei ferrado com esse pesadelo ... stackoverflow.com/questions/9863836/library-not-found-for-lpods e tive que remover o CP por enquanto. Graças
Fattie
1
(No meu caso - Março de 2014 - se relacionava com o todo "Parse / Facebook liraries / configurações arquitetura" loucura poderia ajudar alguém a ler novamente obrigado...)
Fattie
Estou prestes a fazer isso e o motivo é que ele precisa recompilar regularmente todos os projetos de Pod, mesmo que nenhum deles tenha sido tocado, por isso diminuiu consideravelmente meus tempos de compilação.
theLastNightTrain
24
Vai deixar isso aqui porque trabalhou muito para mim: github.com/kylef/cocoapods-deintegrate
Jack
1
Se alguém está se perguntando por que um milhão de avisos estão aparecendo no Xcode, é porque você precisa para confirmar as alterações no git / svn
Achintya Ashok
352

pod deintegratee pod cleansão dois comandos designados para remover o CocoaPod do seu projeto / repositório.

Aqui está o conjunto completo de comandos:

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

A solução original foi encontrada aqui: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

Documentação do CocoaPod em pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate

DevGansta
fonte
3
obrigado, funciona (quase) para mim. Após esses comandos, recebi um erro de vinculador durante a compilação. A solução foi remover a "estrutura Pods" de Destinos -> Criar fases -> Vincular binário com bibliotecas
uldo
Desde a versão 1.0.0beta8, os Cocoapods criam fases de construção estranhas com esses nomes: 📦 Verifique o Pods Manifest.lock. Verifique se eles foram removidos após a desintegração.
Timur Bernikovich
Observe que, se você estiver em uma máquina que não possua cocoapods instalados, será necessário fazer a instalação gem de cocoapods antes que o comando pod funcione. Isso pode acontecer se você restaurar ou copiar um projeto em um novo sistema.
precisa saber é o seguinte
65

Para remover completamente os pods de um projeto, você precisa instalar duas coisas primeiro ... essas são as seguintes (supondo que você já tenha os cacau-pods instalados no sistema.) ...

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

Instalação

  1. Cocoapods-Deintegrate Plugin

    Use este comando no seu terminal para instalá-lo.

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

    Use este comando no seu terminal para instalá-lo.

    sudo gem install cocoapods-clean

Uso

Antes de tudo, vá para a pasta do projeto usando o comando usual como ..

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

Agora use esses dois plugins para removê-lo completamente da seguinte maneira.

  1. Cocoapods-Deintegrate Plugin

    Use este comando a seguir no seu terminal para desintegrar os pods do seu projeto primeiro.

     pod deintegrate

Desintegração de vagens

  1. Cocoapods-Clean Plugin

    Após a desintegração do pod do seu projeto, use o seguinte comando no seu terminal para limpá-lo completamente.

     pod clean

    Depois de concluir as tarefas acima, deve haver o Podfile ainda no diretório do seu projeto .. Apenas exclua-o manualmente ou use o seguinte comando no terminal.

     rm Podfile

É isso aí ... Agora você tem seu projeto livre de pods ... Limpo.

Removendo Cocoapods do sistema.

De qualquer forma, tente usar o seguinte comando no seu terminal para desinstalar / remover os coca-pods do seu sistema.

sudo gem uninstall cocoapods

Ele removerá as vagens de coca automaticamente.

Obrigado. Espero que isso tenha ajudado.

onCompletion
fonte
5
Uau! pod clean exclui seu espaço de trabalho , mesmo se você tiver outros projetos! Seja cuidadoso!
1
@charl Em caso de limpeza vagens de seu projeto único você tem que limpar a área de trabalho ... mas o método, obviamente, não se aplica para vários projetos associados com o único espaço de trabalho .... :(
onCompletion
local !! Exatamente o que eu queria
Vigneshwaran.m
49

Eu acho que existe uma maneira mais fácil de fazer isso.

Conforme editado pela resposta aceita, agora você pode usar um plug - in de cocoapods-deintegrate de terceiros , é confiável porque é feito por um membro da equipe principal do CocoaPods.

Mas ainda existem alguns arquivos:

Podfile
Podfile.lock
Workspace

Você pode removê-los do seu projeto manualmente, mas também há outra ferramenta para ajudá-lo a limpá-los, graças ao cocoapods-clean .

Finalmente, o trabalho de desinstalação ainda não foi concluído, cocoapods-cleannão limpe Podfile, apenas execute:

rm Podfile

Felicidades!

Antes de remover, verifique se você tem um backup do seu projeto!

Allen
fonte
1
O problema do desintegração é que ele depende de pedras preciosas e rubis, assim como os cocosapods. Atualmente, estou procurando remover pods por causa de dificuldades com o El Capitan e pedras preciosas. Desinstaladores devem estar disponíveis como binários independentes.
Nheagy 16/07/2015
Obrigado e mais detalhes aqui, se você tiver problemas após uma desintegração bem-sucedida.
Adam Johns
Graças, que foi suave usando 'CocoaPods-deintegrate'
shaikh
46

pod deintegrate

Após esse cmd, nenhum vestígio de Cocoapods deixou no seu projeto.

Mas sua área de trabalho que faz referência ao projeto Pods ainda permanece, você deve remover abaixo dos 3 arquivos manualmente:

xx.xcworkspace
Podifle
Podfile.lock

Então você pode usar seu projeto novamente.

Diverta-se!

Teste a versão CocoaPod = 1.2.0

Mistdon
fonte
Bom, também funcionou aqui depois de já ter excluído a maioria das coisas manualmente.
brainray
desintegrar armas nucleares em seu espaço de trabalho. Tenha cuidado se precisar.
SafeFastExpressive
1
@mistdon você salvou sua vida pela segunda vez.
Dheeraj D 18/03
20

Eu tentei todas essas respostas, mas elas ainda não foram construídas, eventualmente tentei:

pod deintegrate
pod install

que realmente funcionou!

É como se fosse necessário remover todos os scripts de pod das fases de construção e adicioná-los novamente para que funcionasse, pelo menos no meu caso.

David Rees
fonte
Especialmente útil, se você renomeou um projeto com os pods integrados.
bisma 30/05
12

A resposta de Keith é ótima - só quero salientar isso porque o Cocoapods 0.36 está começando a dar suporte a Dynamic Frameworks , se você estiver usando 'use_frameworks!' no seu 'Podfile' e você deseja remover os Cocoapods, faça o seguinte:

  • Na fase de Build Phasesexclusão Embed Pods Frameworks.
Chao Ruan
fonte
Direita. Se você não fizer isso, receberá erros de compilação.
Zia
Se houver outros arquivos lidando com o Podsinterior, Build Phases exclua-os também.
luckyging3r
8

Pode haver dois aspectos que o desenvolvedor pode enfrentar.

  • Ou ele quer remover completamente os pods do projeto
  • O desenvolvedor deseja desinstalar uma estrutura específica do projeto dos pods.

No primeiro caso, você deve usar o 'desintegração de pod' e seguir várias etapas mencionadas nas respostas acima.

Para o segundo caso, ou seja, se você deseja desinstalar qualquer estrutura específica instalada de uma maneira muito simples disponível no seu arquivo pod, apenas comente a estrutura que deseja desinstalar e execute o comando 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

Aqui, eu quero desinstalar as estruturas do facebook e analisar (que foram instaladas usando pods) e não o iCarousel, por isso atualizei meu arquivo pod como acima.

Agora, se eu executar a instalação do pod, ele manterá o iCarousel como está no meu projeto e removerá o facebook e analisará.

SZ.
fonte
4
  1. A primeira coisa que você precisa fazer é remover o Podfile, Podfile.lock, a Podspasta e o espaço de trabalho gerados.
  2. Em seguida, .xcodeprojremova as referências aos Pods.xcconfigarquivos e ao libPods.aarquivo.
  3. Na guia do projeto Build Phases, exclua a seção Check Pods Manifest.lock (aberta), a seção Copy Pods Resources (em baixo) e Embed Pod Pod Resources (em baixo).
  4. Retire Pods.framework.

A única coisa que você pode querer fazer é incluir algumas das bibliotecas que você estava usando antes. Você pode fazer isso simplesmente arrastando as pastas que estão nas pastas pods para o seu projeto (prefiro colocá-las na minha pasta Arquivos de Suporte).

Funcionou para mim.

AG
fonte
4
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile
Métodos dinâmicos
fonte
Depois de se livrar de todos os cocoapodsgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Atum
2

Exclua todos os arquivos de pod relacionados:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

e no Project Navigator:

Clique no nome do projeto (ícone azul) -> Alvos (*) -> Fases de construção -> Remover "[CP] Check Pods manifests.lock" (clique no "x")

(*) Clique no nome do projeto, talvez seja necessário clicar em "Mostrar lista de projetos e destinos" para ver a barra lateral primeiro.

Mailavan C
fonte
Eu também excluí a pasta "Pods" porque estava usando apenas uma única; caso contrário, exclua a pasta "NameOfThePod" dentro da pasta "Pods".
Neph 17/07/19
1

Vou escrever o que iv fez muito brevemente (para excluir qualquer CocoaPods do meu projeto) ..

  1. exclua qualquer pasta adicionada (estruturas, Pods, ...)
  2. exclua todos os arquivos adicionados (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. basta deixar os originais (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. remover referência de estrutura do projeto no xcode

Para remover a referência de estrutura do xcode:

  1. Use o Navegador de Projeto
  2. Selecionar Projeto
  3. Selecionar alvo PROJETO
  4. Selecione Criar fases nas opções principais
  5. deixe os grupos padrão (dependências de destino, fontes de compilação, binário vinculado com bibliotecas, recursos de pacote de cópias) e exclua qualquer outro
SoliQuiD
fonte
1

Se você deseja apenas remover um pod e manter outros que possa ter instalado, abra o podfile no diretório do aplicativo e exclua o que deseja remover. Em seguida, navegue até o diretório do aplicativo usando o terminal e digite:

pod update

Isso removerá o pod que você removeu do podfile. Você verá que foi removido no terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Observe que esse método também puxará quaisquer atualizações para os outros pods em seu podfile. Você pode ou não querer isso.

TM Lynch
fonte
De acordo com a documentação, você deve usar pod installpara adicionar / remover pods. Isso é especificamente para evitar atualizações, como você disse aqui. Você pode ler mais sobre os seus 'guias' sobre este tema ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe
0

Use estes comandos do terminal (não se esqueça de usar o sudo no início de novas linhas):

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 a lista uma a uma como esta:

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

Consegui remover meus pods no projeto usando o aplicativo CocoaPods (versão 1.5.2). Depois, apaguei apenas os arquivos podfile, podfile.lock e xcworkspace da pasta.

Berkant
fonte
0

insira a descrição da imagem aqui

representação pictórica detalhada

vilas deshmukh
fonte
0

Acho que você não precisa mais se desintegrar. Consegui fazer isso com o seguinte comando no terminal:

instalação do pod

e removeu automaticamente os que não estão mais no podfile

Özgür Cem Birler
fonte