1、概要
iOS开发时,项目中会援用许多第3方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统1管理这些第3方库(从1个坑出来,又进了另外一个坑而已……)。
2、安装
由于网上的教程基本都大同小异,但细节的地方还不是很完善,所以借机会在这里补充下:
注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境
1、Ruby环境搭建
当前安装环境为Mac mini 10.8.5。Mac OS本身自带Ruby,但还是更新1下保险,由于我第1次安装在没有更新Ruby的情况下就失败了。
a 查看下当前ruby版本:打开终端输入 ruby -v(确切安装了,不过用这个版本接下来工作失败了,所以更新下ruby)
终端输入以下命令(把Ruby镜像指向taobao,避免被墙,你晓得)
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l (用来检查使用替换镜像位置成功)
补充:(2016-01⑵0更新)
淘宝已关闭HTTP协议的景象服务,改成HTTPS协议。
淘宝ruby地址:https://ruby.taobao.org/
2、下载安装CocoaPods终端输入:sudo gem install cocoapods
这样就下载安装好了CocoaPods
3、使用CocoaPods
a 新建1个项目,名字PodTest
b 终端中,cd到项目总目录(注意:包括PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)
接着上1步,终端输入 vim Podfile
键盘输入 i,进入编辑模式,输入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq
注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多1个Podfile文件
激动人心的时刻到了:肯定终端cd到项目总目录,然后输入 pod install,等待1会,大约3分钟。
查看项目根目录:
注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace
对工程产生的变化,有几点需要说明:
a、第3方库会以成静态库方式引入工程使用
CocoaPods会将所有的第3方库以target的方式组成1个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。全部第3方库工程会生成1个名称为libPods.a的静态库提供给工程使用。
b、xcworkspace(PodTest.xcworkspace)的作用是管理工程和第3方库
PodTest工程和Pods工程被以workspace的情势组织和管理。
打开项目后看到项目结构并且测试1下:
运行结果:
补充:
1、CocoaPods的基本安装及使用都详细的说明了,但还有1些补充,当需要同时导入多个第3方时候怎样办 ?
这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新履行1次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
终端输入命令:pod search UI
疯了了,我怎样查找这么大众的关键字,好多库~~
然后重新编辑Podfile文件,依照之前的步骤,把更多的库都导入项目!
3、上文中“建立Podfile(配置文件)接着上1步,终端输入 vim Podfile”步骤,如果不习惯使用vim编辑器,也能够使用linux命令touch,生成1个空的Podfile文件,然后使用其他的文本编辑器都可以,例如:
4、如果已生成了CocoaPods管理的工程,则可以在Xcode中编辑Podfile,编辑保存后,别忘记cd到根目录,调用pod install命令
5、项目存在多个Target的时候,需要配置Podfile文件来支持新增加的Target,否则只支持项目默许建立时生成的Target:
a、如果新建1个Target,命名为Second,并且Second与Test两个Target所需要的第3方支持相同,也就是使用相同的Pods依赖库,则可使用
link_with关键字:
6、出现/Library/Ruby/Gems/2.0.0/gems/claide-0.8.1/lib/claide/command.rb:417:in `help!': [!] You cannot run CocoaPods as root. (CLAide::Help)
重新打开1个终端,然后pod install,不要sudo pod install。
7、如果$ pod install时候遇到: