Pods入门到放弃

POD

在开发OS/或者是iOS应用时,都会使用的Pod作为第三方管理工具。在开发swift或者是oc项目时都会使用到。

安装POD

1.更新gem

$sudo gem update --system

2.更换Ruby镜像

$gem sources --remove https://rubygems.org/

$gem sources -a https://gems.ruby-china.org/

$gem sources -l  (用来检查使用替换镜像位置成功)

3.安装cocoaPods

$sudo gem install cocoapods --pre或$sudo gem install -n /usr/local/bin cocoapods --pre

这个就不多讲了,网上教程很多。原来都用的淘宝的镜像,现在只要更新一下镜像重新安装一下即可。

Pod使用

1. 打开终端

2.cd到项目文件下

3.执行touch podfile

4.用编辑器打开podfile,vim podfile/emacs podfile/再或者就是直接去项目文件下使用文本编辑器打开

5.搜索需要安装的第三方库 pod search afnetworking

6.pod 'AFNetworking', '~> 3.1.0'复制到编辑器中。这里讲一点指定版本和不指定版本的区别,指定版本在install时就会下载指定版本的第三方文件,如果不指定都是下载最新的第三方文件 。使用私有库

pod'私有库名称', :podspec =>'git地址'

7.pod install 和pod update 

这里说一下pod install 和pod update

pod install 是你第一次在你项目中检索某个pods,或这是当你编辑podfile时,使用pod install

每次使用pod install 都会下载新的pod,每次编辑的第三方版本都在Podfile.lock文件中

pod update 当你运行pod update 时将会找到一个更新后的pod name和版本,不会考虑Podfile.lock

只更新到podfile中指定的版本。

简单点就是install 会考虑Podfile.lock的感受,update 不管你Podfile.lock是说我只关心podfile里面写的是什么。

pod install --no-repo-update 在使用install时会自动更新索引文件podspec,使用--no-repo-update可以禁止更新索引文件

pod update --no-repo-update 如上

为自己的项目创建 podspec 文件

pod spec create podspec_name。

具体的制作自己的pod 公有库和私有库在我见书中有写《cocoapods公共库的前情提要》《让自己的代码支持cocoaPods》《cocoapods私有库的创建和更新》

使用原理

Pods 项目最终会编译成一个名为 libPods.a 的文件,主项目只需要依赖这个 .a 文件即可。

对于资源文件,CocoaPods 提供了一个名为 Pods-resources.sh 的 bash 脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。

CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。

这个可以打开你的带有cocoapods的项目

Pods入门到放弃_第1张图片
support file
libpods.a

可以查看途中标识的两个部分。原理就在这里

Pods原理

远程索引库:远程索引库中放着第三方框架的描述信息,描述信息中油第三方源代码的地址也就是podspec文件存在远程索引中

在使用pod setup时,我们会将远程索引库下载到本地,所以在执行这个命令时很漫长。完后就会在本地生成本地索引库。同时也会生成一个检索索引文件

pod search xx 先去本地检索索引文件检索这个第三方框架

pod install 会先去描述信息中找到代码地址,然后下载到项目中

所以上传代码时,很简单的描述,1.提交代码到git 2.填写描述信息文件 3.将描述信息上传到远程索引文件中。

这些就是Pods的原理

下期预告:WCDB

正在研究中,日期暂定

总结:

在使用中可能会出现一些错误,可以查看cocoapods Guide或者是cocoapods官网

本人联系方式:qq:513961360

email:[email protected]

也可以加我们的qq群希望能与朋友们一起聊天和学习.群里还有很多iOS开发者,帮助我们解决问题,并且同时学习.

qq群号:580284575

你可能感兴趣的:(Pods入门到放弃)