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.删除项目中引用的头文件及相关的代码


  • 2021-01-13 13:36:29

    shortid nodejs短id生成器

    短ID在实际运用中很广泛, 其中比较典型的运用就是短地址。 市面上肯定有不少开源的生成短ID库, 基于node.js的估计也不少。 鉴于本人已然是node.js的脑残粉(本职java开发), 很多业余项目从前端到后端都基于javascript开发, 加上npm和bower的包管理以及grunt的打包工具, 在项目开发过程中体验特别酸爽。 由于当时项目前后端都会用到短ID, 但没找到合适的库同时支持npm和bower的(可能孤陋寡闻). 因此自己乐此不疲地又造了个轮子js-shortid(夷,为什么会说又呢?!). 下面主要介绍它的实现方案, 自认为比较优雅简洁。

  • 2021-01-13 17:23:21

    CREATE TABLE 表名 AS SELECT 语句 快速复制表但是锁表

    注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键 在执行语句的时候,MySQL是逐行加锁的(扫描一个锁一个),直至锁住所有符合条件的数据,执行完毕才释放锁。所以当业务在进行的时候,切忌使用这种方法。 在RR隔离级别下,还会加行锁和间隙锁

  • 2021-01-13 17:27:04

    Navicat配置mysql数据库用户权限

    用数据库的时候就会遇到有多个用户,分配用户权限的情况,有些用户只读,有些用户可以读写,有些用户只能操作一个或者多个数据库,如何给mysql的用户设置权限,我这里描述一下如何用navicat图形操作分配用户权限

  • 2021-01-14 06:15:04

    通过glide获取图片显示后的真正宽高

    有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下:

  • 2021-01-14 09:38:57

    Chrome插件详细教程

    严格来讲,我们正在说的东西应该叫Chrome扩展(Chrome Extension),真正意义上的Chrome插件是更底层的浏览器功能扩展,可能需要对浏览器源码有一定掌握才有能力去开发。鉴于Chrome插件的叫法已经习惯,本文也全部采用这种叫法,但读者需深知本文所描述的Chrome插件实际上指的是Chrome扩展。

  • 2021-01-14 17:07:51

    chrome.contextMenus.create不出现菜单

    主要原因是,我每次刷新玩,都复制一下右键,然而并没有出现菜单,一度颓废啊,因为demo,还有其他人的文章都是这样的。 哎,后来发现是这样的,我缺少了contexts选项。其实我是成功了,我现在只要不选择文字,直接点右键,菜单已经出现了哦。

  • 2021-01-15 13:06:08

    监控 MongoDB -

    随着MongoDB中保存的数据越来越多,对MongoDB服务状态的监控也越来越重要,经常关注服务是否健康,才能防止故障以及优化。