1、了解Cocoapods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理(github.com/CocoaPods/Specs),一般我们iOS项目都要使用第三方开源库,CocoaPods能节省很多设置和第三方开源库的时间。CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。
2、CocoaPods的安装
CocoaPods可以方便地通过Mac自带的RubyGems安装。但是,由于本人电脑比较老(2010年中的),Mac系统又升级到了最新的,这样的话一般需要升级下ruby才能使接下来的步骤不报错,打开命令行工具输入curl -L get.rvm.io | bash -s stable 等待一段时间后就可以成功安装好 RVM,测试下是否安装正常rvm -v 然后用RVM升级Ruby,先查看下当前ruby版本 ruby -v 列出已知的ruby版本 rvm list known
安装新的ruby rvm install 2.3.3(这里需要说明下为什么不安装最新的2.4.0版本,因为安装2.4.0版本时间很长,而且这个网速使翻墙网速,就算你家里宽带再高也是没用的,而2.3.3版本不是很大,也是能用的,可用节省很多时间),安装完成之后ruby -v查看是否安装成功。
接下来需要更新下ruby的源(这是因为ruby原始软件源rubygems.org因为使用亚马逊的云服务,被我国屏蔽了),过程如下:
$ gem sources -l (查看当前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.org/(之前的https://ruby.taobao.org/淘宝源没有更新不能用了)
$ gem sources -l (查看是否替换成功)
如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system
升级成功后会提示: RubyGems system software updated
然后重新执行安装下载命令 sudo gem install cocoapods 这时候应该没什么问题了
接下来进行安装,执行: pod setup 会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引(但是现在gitcafe上的镜像https://gitcafe.com/akuandev/Specs.git 地址不对了,所以还是老老实实等着吧),当出现Setup completed 时说明已经完成了。
3、CocoaPods的使用
cd进入工程所在的目录,执行pod init 这个时候会自动生成Podfile文件,格式内容如下
# Uncomment the next line to define a global platform for your project (这个是注释)
platform :ios, '8.0' (运行最低版本号)
target 'CocoaPodsTestDemo' do (执行程序名,默认加载)
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks! (是否执行动态库,默认是关闭的,上面的注释是解释这个的)
pod ‘AFNetworking’, ‘~>3.1.0’ (指定加载三方库版本)
pod ‘SDWebImage’ (不指定则默认加载最新版本)
pod ‘MJRefresh’ (还可以用pod search MJRefresh 搜索出所有版本)
# Pods for CocoaPodsTestDemo
end
写上需要的第三方库后保存执行命令pod install (首次最后执行这个),这样就默认下载完成并且设置好了编译参数和依赖,以后使用的时候注意两点:,
1.以后需要使用Cocoapods生成的.xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新执行一次pod update命令
当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock.在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也不要添加到.gitignore中.
4、CocoaPods的使用中的问题
网上有很多这样那样的问题,可以直接把报错粘贴在百度上查找,基本可以解决,这里就不多说了。