一、什么是CocoaPods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们方便的管理这些第三方开源库。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install。Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
二、CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
三、CocoaPods的安装
CocoaPods可以方便地通过Mac自带的RubyGems安装。
打开Terminal,然后键入以下命令:
$ sudo gem install cocoapods
或者可以使用 brew 来安装
$ brew install cocoapods
但是,在终端中敲入这个命令之后,会发现半天没有任何反应。
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,用ruby-china的Ruby镜像来访问cocoapods,过程如下:
$ gem sources -l (查看当前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.com/
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
查询当前gem版本
$ gem -v
如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system
升级成功后会提示: RubyGems system software updated
ps:一般都能安装成功,如果提示报错如下:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match
那么替换安装命令为:(OS X 10.11以后版本可能会出现)
$ sudo gem install -n /usr/local/bin cocoapods
想知道自己有没有安装完成,可以在终端输入以下命令:
$ pod --version
显示出版本就说明成功了。
注:
Cocoapods 目前在 Mac M1 架构上可能还有一些兼容问题(我们建议使用brew install cocoapods来安装 Cocoapods)。如果你在安装 pods 依赖时出现问题,可以尝试运行下面的命令:
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
以上命令会安装ffi包,用于在安装和装载 pods 时调用合适的系统架构。
四、Cocoapods的使用
进入工程所在的目录(工程根目录)
执行命令 pod init
会生成一个Podfile文件
注:从1.8版本开始CocoaPods将默认源切换到了CDN服务,不需要将整个repo master同步到本地才能正常使用pods而是用按需下载即可。
查看远程源列表:pod repo list
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/lx/.cocoapods/repos/master
trunk
- Type: CDN
- URL: https://cdn.cocoapods.org/
- Path: /Users/lx/.cocoapods/repos/trunk
1.添加源
source 'https://cdn.cocoapods.org/'
或
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Artsy/Specs.git'
platform :ios, '9.0'
inhibit_all_warnings!
target 'MyApp' do
end
2.如果之前安装过cocoapods,先删除master,保留CDN Trunk
pod repo remove master
注:存在老版本cocoapods,直接将.cocoapods文件夹删除 重新$ sudo gem install cocoapods
安装比较稳妥
3.尝试ping https://raw.githubusercontent.com
如果不通可以使用SwitchHosts
切换CDN节点尝试
4.正常使用pod
pod search、pod install、pod update
克隆到本地
pod repo add cocoapods https://github.com/CocoaPods/Specs.git
git clone ......