pod删除已导入的第三方库和移除项目中的cocoapods

2018-12-04 23:40:26

CocoaPods是一个负责管理iOS项目中第三方开源库的工具。CocoaPods的项目源码在Github上管理。在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$ pod install命令。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数. 但是如果我们导入的某个第三方不适用,或者我们又不想使用该第三方,那我们又该如何将这些相关的东西从我们的项目中清理出去呢?

第一部分介绍如何删除项目中已经由cocoapods配置好的第三方

1,打开项目中的Podfile文件,如图所示


2,直接在Podfile文件删除选中想删除的第三方库,如图所示:


3.打开终端cd到当前项目的根目录下重新执行命令pod update --verbose --no-repo-update(网上的做法命令是这么写的:,pod install --verbose --no-repo-update)我没有去研究他们的区别,如果有谁知道欢迎直接告诉我,谢谢。

当命令运行完后项目中的Snapkit第三方就已经被移除。

但这个时候有的同学的终端会出现问题,如图所示:


这是因为Podfile文件格式还是以前的老版本格式需要修改下,修改如下图所示:


更改好了Podfile文件格式后,又重新执行命令pod update --verbose --no-repo-update。等待重新更新安装

4,如果这个时候更新没有问题,那就恭喜你,但是也会出现警告,这些警告不能忽略,你忽视了的结果就是不能打包,这是我的亲身经历,如图所示:


这么一大坨东西,查了下资料,发现是配置的问题,现在记录下解决方法,

进入对应的工程中,找到build setting对应的地址,这个地址就是你出现问题是弹出的内容,我这里的地址就是两个  'HEADER_SEARCH_PATHS'和 'OTHER_LDFLAGS',这两个就是上面那四个[!]里给出的,分别对应两种状态调试和发布([Debug]和[Release]),在对应的工程中把`$(inherited)`加进去即可,注意,去掉''号,如下图所示:


有的时候可能不是在这个路径下面,根据具体提示找到该位置,做同样的修改就可以了。这是我的亲身经历希望能帮到你。

第二部分:删除cocoapods


某种特殊情况下我们甚至都不想使用cocoapods了,这时我们想要将cocoapods彻底的从项目中移除,不留一点痕迹,略微有点麻烦,


1.删除工程文件夹下的Podfile、Podfile.lock和Pods文件夹,xcworkspace文件。


2.打开xcodeproj文件,删除项目中的Pods文件夹及Framework文件夹(此时这两个文件夹中的文件已经报红,说明此时这些文件已经不存在)


3.删除配置文件: 打开Build Phases选项,删除Check Pods Manifest.lock和Copy Pods Resources,以及Embeded Pods Frameworks


4.删除项目中引用的头文件及相关的代码


  • 2017-09-11 16:35:22

    ngx_http_realip_module使用详解

    网络上关于ngx_http_realip_module的文章千篇一律,全是在说怎么安装,最多贴一个示例配置,却没有说怎么用,为什么这么用,官网文档写得也十分简略,于是就自己探索了一下。

  • 2017-09-11 16:39:43

    基于Nginx dyups模块的站点动态上下线

    在分布式服务下,我们会用nginx做负载均衡, 业务站点访问某服务站点的时候, 统一走nginx, 然后nginx根据一定的轮询策略,将请求路由到后端一台指定的服务器上。

  • 2017-09-13 13:49:21

    Web性能测试:工具之Siege详解

    Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多

  • 2017-09-14 10:18:25

    15分钟成为Git专家

    不管是以前使用过 Git 还是刚开始使用这个神奇的版本控制工具的开发者,阅读了本文以后都会收获颇丰。如果你是应一名有经验的 GIT 使用者,你会更好的理解 checkout -> modify -> commit 这个过程。如果你刚开始使用 Git,本文将给你一个很好的开端。

  • 2017-09-28 16:42:57

    Linux vmstat命令实战详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

  • 2017-10-13 16:21:29

    Activity的四种launchMode

    launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。

  • 2017-10-16 16:45:45

    Android开发技巧:Application和Instance

    在开发过程中,我们经常会需要用到一些全局的变量或者全局的“管理者”,例如QQ,需要有一个“全局的管理者“保存好友信息,各个activity即可直接通过该”管理者“来获取和修改某个好友信息,显然,这样的一个好友信息,保存到某一个具体的activity里面,然后依靠activity的intent来传递参数是不合适。我们有两种方法来实现这样一个全局的管理者,一种是使用C++/Java中常用的单例模式,另一种是利用Android的Application类,下面一一阐述。