应用CocoaPods管理iOS的依赖库关系
就像Java有Maven,nodejs有npm一样,ios也有自己的库依赖管理工具:CocoaPods。
安装与设置
Mac下使用自带的ruby的gem命令进行安装:
| 1
 |  | 
第一次使用之前需要设置CocoaPods:
| 1
 |  | 
此时需要耐心等待,因为CocoaPods会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有80M左右,比较慢。
如果你等太久,可以试着cd到那个目录,用du -sh *来查看下载进度。
使用
安装依赖库
使用时需要新建Podfile文件,格式如下:
| 1 2 3 4 5 |  | 
然后你将编辑好的Podfile文件放到你的项目根目录中,执行如下命令即可:
| 1 2 |  | 
现在,你的所有第三方库都已经下载完成并且设置好了编译参数和依赖,你只需要记住如下两点即可:
- 使用CocoaPods生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
- 每次更改了Podfile文件,你需要重新执行一次pod update命令。
搜索依赖库
你如果不知道cocoaPods管理的库中,是否有你想要的库,那么你可以通过
| 1
 |  | 
命令进行查找。
问题
1. required a higher minimum deployment target
当我在使用kingpin第三方库的时候,出现了下面的问题:
| 1
 |  | 
通过修改Podfile的第一行:
| 1
 |  | 
为
| 1
 |  | 
解决。
如果问题仍然存在,将'7.0'改成'8.0'或者'9.0',直到没有错误。
2. 在Objective-C中引用swift写的CocoaPod库
当我在用ios-charts库的时候,首先出现了问题1。解决问题1之后,又出现了下面的问题:
| 1
 |  | 
于是,将Podfile从
| 1 2 |  | 
改成
| 1 2 3 |  | 
解决了这个问题。接着就是如何在Objective-C的project中使用这个swift库了。
首先是官方文档Swift and Objective-C in the Same Project,有点看不懂。
一些人说的:
| 1
 |  | 
会报错。
很庆幸,StackOverflow上有人遇到了相同的问题:Module not found error when importing Swift pod into Objective-C project,在需要用到Charts库中的类的文件中,加入下面代码:
| 1
 |  | 
另外,注意,在Storyboard中使用库中类的时候,在Module框中填上Charts,如下:
