CocoaPods统一管理第三方库,开发IOS应用时会用到第三方类,比如JSONKit,AFNetWorking等等,cocoaPods可以同意管理这些库,包括添加,删除,更新。
1.安装
(1)安装RVM:
Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)
> curl -L get.rvm.io | bash -s stable
等待一段时间后就可以成功安装好 RVM
> source ~/.bashrc
> source ~/.bash_profile
测试是否安装正常
> rvm -v
结果:
nicks-MacBook-Pro:~ admin$ rvm -v
rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
(2)Ruby 更新
mac自带Ruby,最好更新一下,因为安装cocoaPods时会提示要求Ruby版本
// Ruby版本列表
> rvm list known
// 安装
> rvm install ruby-2.3.0
//如果下载了多个版本,切换到指定版本;重新打开终端,查看版本已修改
> rvm use 2.3.0 --default
(3)安装cocoaPods
> sudo gem install cocapods
2.使用
下面是原始项目
(1)创建Podfile文件
mac终端到项目根目录
//创建Podfile
> vim Podfile
这时会弹出文件,按“i“进入编辑模式
输入
platform:ios,'8.0'
target 'PodTestApp' do
pod 'AFNetworking', '~> 3.1'
end
target ‘PodTestApp’ do,PodTestApp为项目名;pod下面可以重复添加”pod …”
按“Esc“退出编辑,按“:“输入“wq“保存退出。
//为一个项目中项目添加多个target添加,然后'pod install'
target :TargetName1 do
prject "ProjectName"
pod ...
end
target :TargetName2 do
prject "ProjectName"
pod ...
end
//也可以配置第二个要加库的target的 build setting里四个地方,增加$(inherited)。
Other Link Flags
Library search Paths
Header search Paths
Framework search Paths
(2)安装
> pod install
提示你关闭此项目,通过“PodTestApp.xcworkspace“打开项目。
这时项目结构
(4) 对于工程的变化,有几点需要说明:
参看:http://www.360doc.com/content/14/0309/10/11029609_358970353.shtml
A。cocoaPods会将所有的第三方库以target方式组成一个名为Pods的工程,该工程放在项目根目录Pods文件夹下
B。整个第三方库工程会生成一个名称为libPods.a的静态库提供给自己的项目使用
C。自己的工程和第三方库工程会由一个新生成的workspace管理,即.xcworkspace文件
3.补充
(1)Podfile文件管理
这里https://cocoapods.org/app提供了可视化管理工具,直接打开Podfile文件;修改内容后重新install
(2)第三方类库 查找
这里https://cocoapods.org/提供了搜索可使用cocoaPods管理的类库
4.问题
Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
解决办法:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。或者输入格式错误,没输入运行版本:$platform:ios, ‘9.0‘
5.移除
移除cocoaPods,要修改下面东西:
(1).删除本地文件(Podfile、Podfile.lock、Pods文件夹、xcworkspace文件)
(2).打开项目,删除Pod文件夹和Frameworks文件夹下libPods.a;
在Build Phases下,删除Copy Pods Resources、Embed Pods Frameworks和Check Pods Manifest.lock 三项。