转自:http://blog.csdn.net/jymn_chen/article/details/19213601

引言

使用CocoaPods(一)为项目配置第三方类库我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,但是不由得产生一个疑问:如果发现某个类库不适用,甚至是整个CocoaPods我们都不想再在项目中持有,那么我们要怎么把这些东西从项目中清理出去呢?本文介绍的就是如何删除一个或若干个已经在项目中配置好的第三方类库,以及如何将整个CocoaPods从项目中移除(不是在终端中卸载)。

删除项目中已经配置的类库

和(一)类似,我们首先新建一个名为CocoaPodsDemo的项目,然后cd到项目目录下新建一个Podfile文件,并编写该文件,内容如下:

  1. platform:ios, '7.0'
  2. pod 'AFNetworking', '~> 2.1.0'
  3. pod 'JSONKit', '~> 1.5pre'
  4. pod 'MBProgressHUD', '~> 0.8'

相比(一),我们将要加入的JSONKit的版本从1.1升级到1.5 preview版。

然后pod install,可以看到安装是成功的。

打开CocoaPodsDemo.xcworkspace文件,编译一下,会出现报错:

原因是JSONKit类库出现了各种各样的问题。

这个时候,我们很自然想到要删掉这个类库,然后尝试使用低版本的JSONKit(这也是我在(一)中为什么用1.1作为示例的原因)。

方法:

1.打开Podfile文件,删除JSONKit该行,即:

platform:ios, '7.0'  
pod 'AFNetworking', '~> 2.1.0'
pod 'JSONKit', '~> 1.5pre'(删除该行)
pod 'MBProgressHUD', '~> 0.8'

(如果想换成1.1版本,将被删除的行改成pod 'JSONKit-NoWarning', '~> 1.1'即可)

2.cd到当前项目目录下,重新执行pod install命令。输出信息如下(留意Removing JSONKit):

  1. $ pod install
  2. Analyzing dependencies
  3. Removing JSONKit
  4. Downloading dependencies
  5. Using AFNetworking (2.1.0)
  6. Using MBProgressHUD (0.8)
  7. Generating Pods project
  8. Integrating client project

3.重新打开xcworkspace文件,可以看到JSONKit被移除,再次编译将会通过:

在项目中移除CocoaPods

如果你觉得CocoaPods让你的项目出现了问题,不好用甚至是恶心,想将其从项目中彻底移除,也有方法:

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

2.删除xcworkspace文件。

3.打开xcodeproj文件,删除项目中的libpods.a和Pods.xcconfig引用:

4.打开Build Phases选项,删除Check Pods Manifest.lock和Copy Pods Resources:

完成,编译运行,无错通过。

个人感觉,从项目中移除某个类库还算是可以的,但是移除整个CocoaPods就有点麻烦了(也可能是我没有找对方法),希望CocoaPods能作出改进。

另外,如果在编辑工程时不小心删除了某个文件,如Podfile.lock,那么我们就要用上面的方法先移除整个CocoaPods,然后重新建立Podfile和使用pod install命令重装CocoaPods(有够麻烦的)。

参考资料

从工程中删除Cocoapods

How to remove CocoaPods from a project?

删除已经配置的类库和移除CocoaPods[转]的更多相关文章

  1. iOS 删除已经配置的类库和移除CocoaPods

    引言 我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,但是不由得产生一个疑问:如果发现某个类库不适用,甚至是整个CocoaPods我们都不想再在项目中持有,那么我们要怎么把这些 ...

  2. 【转】iOS 删除已经配置的类库和移除CocoaPods

    原文网址:http://www.jianshu.com/p/552f21a989ba 引言 我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,但是不由得产生一个疑问:如果发现某个 ...

  3. 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序。

    原文 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序. 本文的内容 已安装与配置的应用程序 删除配置的应用程序 安装与配置的应用程序^ 在介绍如何删除所 ...

  4. 工程移除CocoaPods依赖库

    http://zanderzhang.gitcafe.io/2015/09/26/工程移除CocoaPods依赖库/ 点这里--->CocoaPods安装和使用教程 当我们工程安装很多第三方开源 ...

  5. 关于Bootstrap fileinput 上传新文件,移除时触发服务器同步删除的配置

    在Bootstrap fileinput中移除预览文件时可以通过配置initialPreviewConfig: [ { url:'deletefile',key:fileid } ] 来同步删除服务器 ...

  6. 查看,添加和删除GIT配置的正确姿势

    查看GIT所有配置的命令: git config --list 查看GIT全局配置的命令: git config --global --list 添加GIT全局配置(HTTPS代理) git conf ...

  7. 脚本添加删除nginx配置中的内容

    [root@nodejs script]# more editnginx.sh #!/bin/bash # function back_check(){ # 备份配置和覆盖配置文件 cp -rf /e ...

  8. netsh wlan set hostednetwork 之后如何删除掉 配置 及终端无法获取IP的解决方法

    来源 微软 技术支持网站 仅仅禁用hostednetwork 是不行的,配置其实还在,彻底删除 配置可以按照如下操作进行: net stop wlansvcGet-ItemProperty " ...

  9. AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

    本文介绍AWS在终止实例的时候如何保留根卷,避免误删软件包和数据. 作者:光环云 尹晓征 在aws控制台创建EC2的时候,我们在添加存储步骤中,如果使用默认配置的情况下,“终止时删除”配置默认是被选中 ...

随机推荐

  1. 将bootstrap弹出框的点击弹出改为鼠标移入弹出

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. java中用过滤器解决字符编码问题

    java的web程序经常出现中文乱码的问题,用一个实现了Filter接口的过滤器类可以较好地解决这个问题. 方式一 EncodingFilter import java.io.IOException; ...

  3. python 获得当前路径

    先要装载 os模块: import os print os.getcwd() 或者 print os.path.abspath(os.curdir) print os.path.abspath('.' ...

  4. JS重点特性——闭包详解

    闭包特性:可以让定义好的函数作用域在调用时发生改变,具体说,调用运行时,可以让(定义时)作用域外其他函数访问到本函数的局部变量甚至参数.举例代码如下: <!DOCTYPE html> &l ...

  5. sql 日期格式化

    sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. 主要方法还是通过日期格式的转换来获取.如下 ...

  6. iis上json解析失败404

    控制面板->打开或关闭windows功能->Internet信息服务->万维网服务->应用程序开发功能,勾选上“.net扩展性”和“ASP.NET”,保存后,重启IIS服务器. ...

  7. 解决微信浏览器无法使用window.location.reload()刷新页面

    解决方法: 使用    window.location.href=window.location.href+随机数    代替 window.location.reload(). function r ...

  8. javascript保留关键字

    1.通用保留关键字 break delete function return typeof case do if switch var catch else in this void continue ...

  9. JS判断客户端系统 让ipad iphone 等手持设备自动跳到手机版

    if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { location.replace("http:// ...

  10. BizTalk开发系列(三十一)配置和使用HTTP适配器

    BizTalk的主机分别进程内主机和独立主机.但由于一直使用的是进程内主机,对于独立主机的认识比较模糊,前不久在做一个BizTalk的项目的时 候,个别系统使用HTTP的方式发布Txt之类的文本的.刚 ...