使用CocoaPods(二)删除已经配置的类库和移除CocoaPods (FWD)

使用CocoaPods(二)删除已经配置的类库和移除CocoaPods

引言

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

 

 

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

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

 

platform:ios, '7.0'  pod 'AFNetworking', '~> 2.1.0' pod 'JSONKit', '~> 1.5pre' pod 'MBProgressHUD', '~> 0.8'

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

 

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

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

Remove CocoaPods

原因是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被移除,再次编译将会通过:

 

Remove CocoaPods

 

 

在项目中移除CocoaPods

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

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

2.删除xcworkspace文件。

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

Remove Pods

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

Remove Pods

 

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

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

 

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

 

 

参考资料

Remove or uninstall library previously added : cocoapods

从工程中删除Cocoapods

How to remove CocoaPods from a project?

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s