管理第三方库(CocoaPods)
最近在学习AutoLayout
,大家都知道 AutoLayout
原生的代码约束语句比较长 ,以前oc的时候,大家都回使用 Masonry
这个开源库,来大大简化代码量,而且易于理解。现在用swift
了,就有些大牛用swift
实现了类似的库,叫SnapKit
,然后我就想把它导入我的项目中用 。
我刚开始是将它下载下来,各种报错呀。最后发现我下的是dev 那个分支branch
上的 , 换成master
后还是不行。 我xcode 7
用得时swift 2.0
master上面还是老版本的语法,最后发现有个branch叫 swift-2.0 下载下来后 ,变异OK。没有问题了。用一种比较笨得方法导入我的项目
找到下载的库 ,然后我们在,右击我们的项目add files to “xxxx” 把这里SnapKit.xcodeproj
添加进来 。
然后在targets
里面的Embedded Binaries
将这个库导入就可以了
最后在使用的地方import SnapKit
,就可以了。然后昨天就这么开心的用着, 今天突然发现还有CocoaPods这个东西 , 这个东西是用来管理第三方库的,相当于java中的maven 。
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库。这种情况下自己来管理 真心很烦的 , 而且如果你的项目需要很多第三方库呢。所以我觉得必须用CocoaPods
,当然现在好像还有别的优秀的第三方库管理 ,但是CocoaPods
无疑是用得最多的。下面看下他得基本用法
在安装CocoaPods之前,首先要在本地安装好Ruby环境。然而MAC上自带ruby 。
sudo gem install cocoapods
这个速度会很慢,一般都用淘宝的Ruby镜像来访问cocoapods。所以这块应该切换成淘宝的
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l
先移除原来的 , 然后添加淘宝的 , 最后查看当前的
这时候,再次输入
sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。
可以通过pod search命令进行查找库 ,比如这里我们查找我们的SnapKit
pod search SnapKit
-> SnapKit (0.13.0)
Harness the power of auto layout with a simplified,chainable,and compile
time safe Syntax.
pod 'SnapKit','~> 0.13.0'
- Homepage: https://github.com/SnapKit/SnapKit
- Source: https://github.com/SnapKit/SnapKit.git
- Versions: 0.13.0,0.12.0,0.11.0,0.10.0 [master repo]
这里可以看到SnapKit是支持CocoPods的 , 有四个版本,最新的是0.13.0 ,这些都是master分支上得 。
然后在需要引入这些库的项目目录下新建一个文件 ,命名为Podfile
,这个名称是固定的
将下面格式的信息写进Podfile
文件
platform:ios,'8.3'
pod 'Alamofire','~> 1.3.1'
pod 'SnapKit','~> 0.13.0'
第一行是支持的最大ios版本 ,下面两行表示我引入的库, 可以为多行 。
然后执行pod install --verbose --no-repo-update
,以前是pod install
,这个好像被墙了
如果成功的话项目下面会多一个.xcworkspace
的文件 ,用xcode打开这个文件 ,不要用以前的.xcodeproj
这样就依赖好了 。但是这两个都不是swift2.0的,所以暂时只能在xcode 6 上用 。。
目前还不知道怎么pod 其他branch的库, 只能用master的。等swift 2.0 普及了吧估计都回升级了 。
这里会报一个错误 说你那个库是beat版本的 , 要添加use_frameworks!
你把这个添加到Podfile
最后面就行了
platform:ios,'~> 0.13.0'
use_frameworks!