简单理解
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
安装过程出现问题还是得刨根问底
1.gem sources -l(查看当前你的ruby源)
输出下面的 Ruby 默认源需要移除更换:
*** CURRENT SOURCES ***
https://rubygems.org/
说明:
ruby源默认是:https://rubygems.org/ 这个源路径国内不能使用
所以一般使用淘宝的镜像https://ruby.taobao.org/ ,先别着急加上去,打开镜像源链接看是否正常,如果打不开或者其他错误,那么去查找目前用的新的镜像源是什么,现由ruby-China在新源为:https://gems.ruby-china.com,所以操作先移除旧源再加新源
*** CURRENT SOURCES ***
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com
此时我们已经替换成新源了 下面执行
sudo gem install cocoapods
若出现此错误 改为 sudo gem install -n /usr/local/bin cocoapods即可
pod setup
为什么要执行pod setup ??
因为所有的pod项目的 podspec文件都托管在 https://github.com/CocoaPods/Specs 这个远程索引库
第一次执行pod setup时CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods/目录下
这个索引文件比较大有 400多M左右,所以第一次更新时非常慢,何止是慢,各种失败啊,眼看着进度到90%了,差点喜极而泣😹,然而人家就是这么顽皮卡那又不动了,好吧 还是失败了。但是大家不要绝望,方法还是有的,比如这样 一次就成功了耶✌️:
使用此命令替换掉pod setup
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
二:pod install & pod update
何时使用pod install以及何时使用pod update?
pod install :
- 第一次在工程里面使用pods的时候使用,并且每次编辑你的Podfile(添加新库、移除库、更新库)的时候使用
- 每次运行pod install命令的时候会把你安装或者更新的每个库的版本都记录在Podfile.lock文件里面
- Podfile.lock文件记录你每个安装库的版本号,并且锁定了这些版本。
当你使用pod install会去查看在Podfile.lock里面所列出的那些库,然后安装在Podfile.lock里面明确的版本。不会去检查该库是否有新的版本。对于还不在Podfile.lock中的库,会找到Podfile里面描述对应版本(例如:pod "MyPod", "~>1.2")。
pod update:
当你运行 pod update PODNAME 命令CocoaPods会帮你更新这个库最新版本,而不需要考虑Podfile.lock里面的限制。如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到最新版本。
pod update 库名 --verbose --no-repo-update
该命令只更新指定的库,其它库忽略
总结:
开发中当你在Podfile里面添加了一个Pod库的时候,你应该使用pod install,这个命令不会更新那些已经安装了的库;要更新某个库的时候你应该使用pod update PODNAME去更新某个特定的库,而不是pod update(pod update会更新所有的库)。
!