很多语言都有自己的依赖管理工具,比如说Java语言的Maven,ios的依赖管理工具CocoaPods,开发ios项目会不自觉地用到第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间
1.CocoaPods 的下载必须有ruby环境 Mac下都自带ruby,由于ruby的软件源rubygems.org 是使用的亚马逊的云服务,所以被屏蔽啦,大陆的服务你懂得,所以要替换成某宝的软件源:
1.1移除原先的软件源
在 terminal中敲入命令:gem sources --remove https://rubygem.org/
1.2替换某宝的软件源
敲入:gem sources -a https://rub
1.3 验证一下:(出现以下说明成功)
敲入:gem sources -l (最后一个字母是L的小写)
2.下载cocoaPods
sudo gem install cocoaPods
3.然后新建一个ios项目,并且切换到此项目中:
cd 项目路径
然后:vim Podfile
将依赖的库的名字依次列在文件里即可:
platform:ios
pod 'AFNetworing'
pod 'MBPrigressHUD'
然后保存退出
然后 pod install,就是在下载过程中。。。。时间微长
关闭项目,重新打开项目:(以后打开的就是后缀名为:.xcworkspace)
打开项目,发现这两个类库已经在哪里静静的躺着啦
注意:
1.每次修改了Profile文件,都需要执行以下pod update命令
2.如果不知道CocoaPods管理的库中是否有你想要的库,那么可以通过 pod search命令来查找:
eg:pod search json
3.(这个是网上的牛人说的,没有实践过) 当执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为Podfile.lock的文件,不应该把这个文件加入到.gitgnore中。因为Podfile.lock会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock。在多人协作的时候,这样可以防止第三方库升级的时候造成大家各自的第三方库版本不一致。
总结:CocoaPods的原理是将所有的依赖库都放到一个名为:Pods的项目中,然后让主项目依赖Pods项目
这是在网上找的具体实现细节:
1.Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a 文件即可
2.对于资源文件,CocoaPods提供了一个名为Pods-resources.sh 的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中
3.CocoaPods通过一个名为Pods.xcconfig的文件在编译时设置所有的依赖和参数。