应用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,如下: