CocoaPods安装指南
来源:互联网 发布:mysql update 阻塞 编辑:程序博客网 时间:2024/05/29 15:07
使用CocoaPods前,请确保Xcode和Xcode Command Line Tools已经安装。构建环境目前使用的是 cocoapods 0.39.0 (2016-01-01)
更换rubygems源
在你开始安装CocoaPods前,建议先配置你的rubygems源,以便保证顺利访问。
gem sources --remove https://rubygems.org/gem sources -a https://ruby.taobao.org/
更具体的指引,可以参考:RubyGems 镜像 - 淘宝网
CocoaPods官方建议直接使用本机自带的ruby。是否使用rvm一类的ruby管理工具,由你决定。
安装CocoaPods
sudo gem install cocoapods
更具体的CocoaPods安装过程可以参考:CocoaPods Getting Started
初始化CocoaPods环境
pod setup
这一步将会从github上clone CocoaPods的spec仓库。如果你的开发环境中没有可以对命令行生效的翻墙工具,这一步可能会遇到github访问不畅的情况。建议使用git只读镜像。同时,加上参数 --no-shallow,如:pod setup --no-shallow
。
使用CocoaPods
如果你所在的项目,已经在使用CocoaPods管理依赖,则使用方法为:
cd到项目的顶层目录,此时能看到名为Podfile的文件。执行 pod install
。
然后,根据提示,执行 open xxx.xcworkspace
想了解使用细节,或者让新项目使用CocoaPods,可以直接查看 Using CocoaPods
常见问题
是否应该使用rvm或类似的ruby管理工具?
对于ruby开发者,这是必备的工具。但如果你只是iOS开发者,可以考虑直接使用系统自带的ruby。一是CocoaPods官方就是这样指引的,二是确实比较简单,不用去了解rvm的使用。 我们推荐直接使用自带的ruby。
安装cocoapods时,可以不使用sudo吗?
CocoaPods官方的Getting Started指引中,提到了如何不使用sudo。有兴趣可以试试。
pod install会生成一个Pods目录,需要commit吗?
CocoaPods官方认为,commit或者不commit,都可以,并给出了各自优劣的对比,最后推荐了commit的做法。 我们推荐不commit。
- Pods目录的内容真的可能很大。比如,如果依赖了yyprotosdk,就可能超过1G。
- CocoaPods 0.37开始,引入通用的本地缓存,于此同时,我们有git只读镜像的机制,出现依赖库无法安装的概率大大降低,且速度很快。
podfile.lock是否需要commit?
CocoaPods官方指出,这个文件必须commit。 但这是官方所习惯的用法导致的。CocoaPods的指引里,依赖关系的指定,依靠的是范围( ~> )。这就引入了不确定性,并且需要podfile.lock机制作为补充。 我们建议,Podfile中尽量使用明确的版本号( = ),而不是范围( ~> ),至于podfile.lock是否commit,可以自行决定。
CocoaPods经常发布新版本,需要随时升级吗?
CocoaPods还没有发布1.0。官方希望我们在1.0发布之前,尽量使用最新的版本。但这可能带来不稳定。 我们建议:
- 只使用stable的版本。
- 等stable发布一段时间(比如一星期后),再升级。因为如果有bug,此时也应该有补丁版被发布了。
如果本地安装的CocoaPods最新版本与代码中的Podfile不兼容,怎么处理?
可以在本地安装一个与构建环境相同版本的CocoaPods,方法是:
pod --version gem uninstall cocoapods gem install cocoapods -v <特定的版本>
- CocoaPods安装指南
- CocoaPods安装指南
- CocoaPods工具包新手安装使用教程指南
- 安装cocoapods
- CocoaPods安装
- cocoapods安装
- CocoaPods安装
- cocoaPods安装
- 安装cocoaPods
- cocoapods 安装
- 安装CocoaPods
- CocoaPods安装
- cocoapods 安装
- CocoaPods安装
- Cocoapods 安装
- CocoaPods安装
- Cocoapods安装
- cocoapods安装
- 所有的文章全部用新的编辑器重新编辑
- upper_bound和lower_bound用法
- 【template】练习
- 2016寒假训练——搜索
- redis安装
- CocoaPods安装指南
- Spring-02-详细配置
- android shape绘制组件边框
- Eclipse 搭建Spring Struts2
- 程序员如何留住健康?
- java接口编程题
- oracle执行update语句卡住不动
- const,typedef与define
- 为什么要使用子程序?