如何从项目中删除CocoaPods?


471

从项目中删除CocoaPods的正确方法是什么?我要删除整个CocoaPod。由于客户施加的某些限制,我无法使用它。我只需要一个xcodeproj而不是xcworkspace。


12
请记住:下次使用git并将其回滚!
Dan Rosenstark '16

35
运行pod deintegrate
onmyway133

Answers:


1030

可以从项目中删除CocoaPods,但目前尚无法通过CLI自动执行。第一件事,如果您唯一的问题是无法使用,则xcworkspace可以xcodeproj通过使用--no-integrate将产生Pods.xcodeproj而不是工作空间的标志,仅将s 与CocoaPods一起使用。然后,您可以将其xcodeproj作为子项目添加到main中xcodeproj

如果您确实要删除所有CocoaPods集成,则需要做一些事情:

注意如果不正确地编辑其中的某些内容,可能会破坏您的主项目。我强烈建议您将项目检查到源代码管理中,以防万一。这些说明也适用于CocoaPods版本0.39.0,它们可能会随着新版本而更改。

  1. 删除独立文件(Podfile Podfile.lockPods目录)
  2. 删除生成的 xcworkspace
  3. 打开xcodeproj文件,删除对Pods.xcconfig和的引用libPods.a(在Frameworks组中)
  4. 在您Build Phases的下Copy Pods Resources,删除Embed Pods FrameworksCheck Pods Manifest.lock阶段。
  5. 这看起来似乎很明显,但是您需要以其他方式集成第三方库或从代码中删除对它们的引用。

完成这些步骤后,应xcodeproj在集成CocoaPods之前设置一个存在的单一对象。如果我错过了任何事情,请告诉我,我将对其进行编辑。

此外,我们一直在寻找有关如何改善CocoaPods的建议,因此,如果您遇到问题,请在我们的问题跟踪器中提交它们,以便我们提出解决问题的方法!

编辑

如Jack Wu在评论中所示,有一个第三方CocoaPods插件可以为您自动执行这些步骤。可以在这里找到。请注意,它是第三方插件,可能在CocoaPods更新时可能不会总是更新。还要注意,它是由CocoaPods核心团队成员制作的,因此不会出现问题。


感谢上帝的这篇文章。我被这个噩梦搞砸了... stackoverflow.com/questions/9863836/library-not-found-for-lpods,我现在必须删除CP。谢谢
Fattie 2014年

1
(在我的情况-三月2014 -它关系到整个“解析/ Facebook的liraries /架构设置”疯狂可能会帮助别人阅读再次感谢。)
Fattie

我将要执行此操作,原因是它需要定期重新编译所有Pod项目,即使没有涉及任何项目,因此大大降低了我的构建时间。
theLastNightTrain 2014年

24
离开这里,因为它对我非常有用
Jack

1
如果有人想知道为什么Xcode中会弹出一百万条警告,那是因为您需要在git / svn上提交更改
-Achintya Ashok

351

pod deintegratepod clean在两个指定命令,从项目/回购删除CocoaPod。

这是完整的命令集:

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

原始解决方案在这里找到:https : //medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

CocoaPod文档位于pod deintegratehttps : //guides.cocoapods.org/terminal/commands.html#pod_deintegrate


3
谢谢,(几乎)为我工作。这些命令后,我在编译过程中出现了链接器错误。解决方案是从“目标”->“构建阶段”->“使用库链接二进制文件”中删除“ Pods框架”
uldo

从1.0.0beta8版本开始,Cocoapods使用以下名称创建奇怪的构建阶段:📦检查Pods Manifest.lock。拆解后检查是否将其卸下。
Timur Bernikovich '16

请注意,如果您所在的计算机尚未安装cocoapods,则需要先执行gem install cocoapods才能执行pod命令。如果将项目还原或复制到新系统上,可能会发生这种情况。
NoelHunter

65

要从项目中完全删除Pod,您需要先安装两件事...以下是(假设您的系统中已经安装了cocoa-pods。)...

  1. Cocoapods-Deintegrate插件
  2. Cocoapods-Clean插件

安装

  1. Cocoapods-Deintegrate插件

    在终端上使用以下命令进行安装。

    sudo gem install cocoapods-deintegrate
  2. Cocoapods-Clean插件

    在终端上使用以下命令进行安装。

    sudo gem install cocoapods-clean

用法

首先,像往常一样使用命令转到项目文件夹。

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

现在,使用这两个插件将其完全删除,如下所示。

  1. Cocoapods-Deintegrate插件

    在终端上使用以下命令首先将项目中的Pod集成在一起。

     pod deintegrate

分解豆荚

  1. Cocoapods-Clean插件

    将Pod从项目中解集成后,请在终端上使用以下命令彻底清洁它。

     pod clean

    完成上述任务后,Podfile仍应保留在您的项目目录中。只需手动删除该文件或在终端上使用以下命令。

     rm Podfile

就是这样...现在,您的项目已从豆荚中解放出来了...清洗了。

从系统中删除可可足类。

任何方式都可以尝试在终端上使用以下命令从系统中卸载/删除可口可乐。

sudo gem uninstall cocoapods

它将自动删除古柯荚。

谢谢。希望这会有所帮助。


5
哇!pod clean 删除工作空间,即使其中有其他项目!小心!

1
@charl如果要清理单个项目中的豆荚,则必须清理工作区...但是该方法显然不适用于与单个工作区关联的多个项目.... :(
onCompletion

发现!!正是我想要的
Vigneshwaran.m

49

我认为有一种更简单的方法可以做到这一点。

正如接受的答案所编辑的那样,现在您可以使用第三方插件cocoapods-deintegrate,它是可靠的,因为它是由CocoaPods核心团队成员制作的。

但是,仍然存在一些文件:

Podfile
Podfile.lock
Workspace

您可以手动将它们从项目中删除,但是感谢cocoapods-clean,还有另一个工具可以帮助您清洁它们。

最后,卸载工作仍未完成,cocoapods-clean请不要清理Podfile,只需运行:

rm Podfile

干杯!

删除之前,应确保已备份项目!


1
崩解的问题在于它像可可足类一样依赖宝石和红宝石。目前,由于El Capitan和宝石的问题,我希望移除吊舱。卸载程序应作为独立的二进制文件提供。
nheagy

如果您成功解体后遇到问题,请在此处感谢和更多详细信息。
亚当·约翰斯

谢谢,使用'cocoapods-deintegrate'很顺畅
shaikh

46

pod deintegrate

此cmd之后,项目中没有留下任何Cocoapods的痕迹。

但是您引用Pods项目的工作区仍然保留,您需要手动删除以下3个文件:

xx.xcworkspace
Podifle
Podfile.lock

然后,您可以再次使用您的项目。

玩得开心!

测试CocoaPod版本= 1.2.0


很好,在已经手动删除最多内容之后,也在这里工作。
brainray

去核化您的工作空间。如果碰巧需要它,请小心。
SafeFastExpressive

1
@mistdon,您第二次拯救了您的生命。
Dheeraj D

20

我尝试了所有这些答案,但仍然无法建立,最终我尝试了:

pod deintegrate
pod install

实际有效!

就像它需要从构建阶段中删除所有pod脚本,然后重新添加它们以使其正常运行,至少在我看来是这样。


如果您重命名了集成了pod的项目,则特别有用。
bisma '18

12

Keith的答案很好-我只想指出一点,因为Cocoapods 0.36开始支持Dynamic Frameworks,如果您使用的是'use_frameworks!'。在“ Podfile”中,并且希望删除Cocoapods,必须执行以下操作:

  • Build Phases删除Embed Pods Frameworks阶段。

对。如果您不这样做,将会得到构建错误。
Zia

如果还有其他文件要处理,PodsBuild Phases 将其删除。
luckyging3r

8

开发人员可能面临两个方面。

  • 他要么想从项目中完全删除豆荚
  • 开发人员希望从Pod中卸载项目中的特定框架。

在第一种情况下,您必须使用“ pod deintegrate”并遵循以上答案中提到的几个步骤。

对于第二种情况,如果您要卸载已安装的任何特定框架,则在pod文件中可以使用非常简单的方法,只需注释要卸载的框架并运行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

在这里,我要卸载facebook和parse框架(已使用pod安装),而不是iCarousel,这就是为什么我如上所述更新pod文件的原因。

现在,如果我运行pod install,它将使iCarousel保持在我的项目中,并将删除facebook并进行解析。


4
  1. 你需要做的第一件事是删除PodfilePodfile.lockPods文件夹,然后将生成的工作空间。
  2. 接下来,在中.xcodeproj,删除对Pods.xcconfig文件和libPods.a文件的引用。
  3. 在“构建阶段”项目选项卡中,删除“检查Pod Manifest.lock”部分(打开),“复制Pod资源”部分(底部)和“嵌入Pod资源”(底部)。
  4. 删除Pods.framework

您可能要做的唯一一件事就是包括以前使用过的某些库。您可以通过简单地将pod文件夹中的任何文件夹拖到您的项目中来完成此操作(我更喜欢将它们放到我的Supporting Files文件夹中)。

它为我工作。


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

摆脱了所有的椰子后gem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

删除所有相关的Pod文件:

  • xx.xc工作空间
  • 播客文件
  • Podfile.lock

在项目浏览器中:

单击项目名称(蓝色图标)->目标(*)->构建阶段->删除“ [CP] Check Pods manifests.lock”(单击“ x”)

(*)单击项目名称,您可能必须单击“显示项目和目标列表”才能首先看到侧栏。


我还删除了“ Pods”文件夹,因为我只使用了一个,否则就删除“ Pods”文件夹中的单个“ NameOfThePod”文件夹。
Neph

1

我要简短地写下iv所做的事情(从我的项目中删除任何CocoaPods)。

  1. 删除任何添加的文件夹(框架,窗格等)
  2. 删除所有添加的文件(PROJECT.xcworkspace,PodFile,PodFile.lock,Pods-PROJECT.debug.xcconfig,Pods-PROJECT.release.xcconfig等)
  3. 只需保留原始内容(PROJECT,PROJECT_Tests,PROJECT.xcodeproj)
  4. 从xcode上的项目中删除框架引用

要从xcode删除框架引用:

  1. 使用项目浏览器
  2. 选择项目
  3. 选择目标项目
  4. 从顶部选项中选择“构建阶段”
  5. 保留默认组(“目标依赖项”,“编译源”,“带库的链接二进制文件”,“副本捆绑资源”)并删除其他任何组


1

如果您只想删除一个Pod并保留其他可能已安装的Pod,请在您的应用目录中打开Podfile,然后删除要删除的Podfile。然后使用终端浏览到您的应用程序目录并键入:

pod update

这将删除您从podfile中删除的pod。您将在终端中看到它已被删除:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

请注意,此方法还将所有更新拉到您的Podfile中的其他Pod。您可能想要也可能不想要。


根据文档,您应该pod install用于添加/删除容器。这是专门为了避免像您在此处所说的那样进行更新。您可以在此主题的更多内容上阅读他们的“指南” ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe

0

使用以下Terminal的命令(不要忘了在新行的开头使用sudo):

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)

像这样一一卸载列表:

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

我可以使用CocoaPods应用程序(版本1.5.2)在项目中删除豆荚。之后,我只删除了文件夹中的podfile,podfile.lock和xcworkspace文件。



0

我认为您不再需要整合。我可以在终端中使用以下命令来执行此操作:

吊舱安装

它会自动删除Podfile中不再存在的文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.