zoukankan      html  css  js  c++  java
  • iOS:删除已经配置的类库和移除CocoaPods

    为最重别人劳动成果,特注明本文来自转载,原文链接为: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):

    $ pod install  
    Analyzing dependencies  
    Removing JSONKit  
    Downloading dependencies  
    Using AFNetworking (2.1.0)  
    Using MBProgressHUD (0.8)  
    Generating Pods project  
    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?

     
  • 相关阅读:
    spring Bean的完整生命周期
    idea+maven+ssm搭建boot_crm项目遇到的问题
    面试题:死锁的四个必要条件
    面试题:静态代理和动态代理的区别和联系 没用
    面试题: Struts2
    我所总结的设计模式 合应用场景
    hibernate 对象OID
    hibernate第三天 一对多 , 多对多
    hibernate里的实体类中不能重写toString
    存储前set方法相互关联 只关联了一方 分别set
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/5142687.html
Copyright © 2011-2022 走看看