1、依赖管理工具
- Java语言的Maven
- Node.js中npm
- iOS中的CocoaPods
2、CocoaPods简介
不使用CocoaPods管理第三方开源库之前,我们需要:
1.拷贝开源库源代码到项目中,或者设置成git的submodule
2.添加开源库的系统(framework)依赖
3.设置-licucore或者-fno-objc-arc等编译参数
4.管理这些依赖包的更新
上述这些工作毫无技术含量并且浪费时间!!CocoaPods使用Podfile文件管理第三方开源库,执行pod install即可!
3、安装和使用
3.1 CocoaPods的安装
Mac下自带ruby,使用ruby的gem命令来安装:
sudo gem install cocopods
pod setup
gem的升级命令:
sudo gem update --system
ruby的软件源rubygems.org因为使用亚马逊的云服务被屏蔽的,将官方源替换为国内淘宝的源:
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l
在执行pod setup
的时候,会输出Setting up CocoaPods master repo
,但是会等待比较久的时间,这步其实是CocoaPods在将它的信息下载到~/.cocoapods目录下,可以cd到目录下,用du -sh *
来查看下载进度。
image.png
3.2 使用CocoaPods的镜像索引
所有项目的Podspec文件都托管在https://github.com/CocoaPods/Specs,第一次执行pod setup时,CocoaPods会将这些Podspec索引文件更新到本地的~/.cocoapods/目录下,这个索引文件比较大,有80MB左右。首次更新时非常慢!
我们可以使用索引库的镜像来加快速度,gitcafe和oschina都是国内的服务器:
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
//http://git.oschina.net/akuandev/Specs.git`
pod repo update
3.3 CocoaPods的使用
新建一个Podfile的文件,格式如下:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'Reachability', '~> 3.0.0'
pod 'ASIHTTPRequest'
pod 'RegexKitLite'
然后将编辑好的Podfile文件放到项目根目录中,执行如下命令即可:
cd "your project home"
pod install
3.4 查找第三方库
pod search json
image.png
4、注意事项
4.1 关于.gitignore
忽略Git中不想提交的文件:
在项目的某个文件夹下定义.gitignore文件,在该文件中定义相应的忽略规则,来管理当前文件夹下的文件的Git提交行为。.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则
。在.gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则。如:
*.log
*.temp
/vendor
pod install
之后,CocoaPods会生成一个名为Podfile.lock的文件,不能把它加入到.gitignore文件中,因为Podfile.lock会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update
才会改变Podfile.lock。在多人写作的时候,这样可以防止第三方库升级时造成大家各自的第三方库版本不一致!
4.2 为自己的项目创建podspec文件
为自己的开源项目创建podspec文件:
pod spec create your_pod_spec_name
CocoPods会生成一个your_pod_spec_name的文件,可以自由修改!
4.3 使用私有的pods
pod 'MyCommon' , :podspec => 'https://yuantiku.com/common/myCommon.podspec'
4.4 不更新podspec
pod install --no-repo-update
pod update --no-repo-update
--no-repo-update
可以禁止索引更新操作
4.5 生成第三方库的帮助文档
brew install appledoc
appledoc,可以将帮助文档集成到Xcode中,按住Opt键单击类名或方法名,就可以显示出相应的帮助文档,同时它也可以让CocoaPods帮你生成第三方库的帮助文档!
4.6 原理
CocoaPods的原理是将所有的依赖库放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中:
1.Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可
2.对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目前目录中。
3.CocoaPods通过一个名为Pods.xcconfig的文件在编译时设置所有的依赖和参数
网友评论