CocoaPods简介
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做CocoaPods
使用CocoaPods会自动将第三方开源库的源码下载下来,并且为工程设置好相应的系统依赖和编译参数
CocoaPods的安装和使用
1.升级Ruby环境
-
打开命令行升级Ruby环境
gem update --system
-
如果没有权限去升级Ruby Sudo权限作用:root把本来超级用户执行的命令赋予普通用户执行
sudo gem update --system
-
查看gem版本号
gem -v
2.换掉Ruby镜像
-
查看当前镜像
gem sources -l
如果当前镜像源为https://gems.ruby-china.org则跳到第三步
-
如果不是则移除现有的Ruby镜像
gem sources --remove https://rubygems.org/
-
添加国内最新镜像源
gem source -a https://gems.ruby-china.org/
3.安装CocoaPods
sudo gem install cocoapods
如果没有权限输入
sudo gem install -n /usr/local/bin cocoapods
然后在去安装 可以查看提速版
pod setup
当出现Setup completed的时候说明已经完成了(中间有个下载的过程小有几百M要等会)
pod setup在执行时,会输出Setting up CocoaPods master repo
但是会等待比较久的时间。
这步其实是Cocoapods在将它的信息下载到
~/.cocoapods目录下
如果你等太久,可以试着cd到那个目录
用du -sh *来查看下载进度。
3.1 提速版
使用CocoaPods的镜像索引所有的项目的Podspec文件都托管在https://github.com/CocoaPods/Specs
第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods/目录下,这个索引文件比较大,有100M左右。所以第一次更新时非常慢。
为了提高下载速度, 可以将文件托管地址从github替换为国内gitclub,这样会快很多。如下操作就可以将github替换为国内gitclub
pod repo remove master
pod repo add master https://gitclub.cn/CocoaPods/Specs.git
pod repo update
出现问题 参考简书组件化第一篇:CocoaPods的安装
注意 如果使用了repo的替代源,记得在Podfile文件的顶部加入下面这行描述,如果不加这一句话,它默认还是从github镜像源地址去下载repo
4.CocoaPods的使用
- 搜索一下第三方库
pod search AFN
- 在工程中创建一个Podfile文件
要想在你的工程中创建Podfile文件,必须先要进到该工程目录下
cd 目录地址
touch Podfile
vim Podfile 或者用xcode打开
pod install
注意事项
-
关于.gitgnore
当你执行pod install 之后,除了podfile外,CocoaPods还会生成一个名为podfile.lock的文件,你不应该把这个文件加到 .gitgnore中。因为podfile.lock会锁定当前所依赖的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变podfile.lock,在多人协作时,这样可以防止第三方库升级时造成各自的第三方库版本不一致.
-
为自己的项目创建podspec文件
在创建第三方库时使用 暂不了解
-
使用私有的pods
我们可以直接知道读一个依赖的podspec,这样做就可以使用企业内部的私有库 例如
pod 'MyCommon', :podspec => '地址'
-
不更新podspec
CocoaPods在执行pod install 和 pod update时 ,会默认先更新一次podspec索引,使用 --no-repo-update 参数可以禁止索引更新操作
pod install --no-repo-update
pod update --no-repo-update
-
生成第三方的帮助文档
创建第三方库使用 暂不介绍
原理
CocoaPods的原理是将所有的依赖库都放在一个名为pods的项目中,然后让主项目依赖pods项目,这样,源码管理工作都从主项目移到了pods项目中
pods项目最终会编译成一个名为libpods.a的文件,主项目只需要依赖.a文件即可。
对于资源文件,cocoapods提供了一个名为pod-resources.sh的bash脚本,该脚本在每次项目编译的时候多会执行,将第三方库的各种资源复制到目标目录中.
CocoaPods通过一个名为pod.xcconfig的文件在编译是设置所有的依赖和参数
网友评论