CocoaPods都做了什么:1、支持插件;2、支持私有库;3、版本管理;4、分析依赖。支持插件是指CocoaPods提供了各种插件,可以定制化依赖管理过程。支持私有库是指开发人员可以通过CocoaPods上传自己的私有库。
一、CocoaPods都做了什么
1、支持插件
CocoaPods提供了各种插件,可以定制化依赖管理过程,如将Podfile转换成其他依赖管理格式等。
2、支持私有库
开发人员可以通过CocoaPods上传自己的私有库,方便团队内部共享使用,并且可以限制访问权限。
3、版本管理
CocoaPods会记录每个依赖库的版本信息,开发人员可以指定使用特定版本的库,适配自己的项目需求。
4、分析依赖
CocoaPods支持通过命令行或网页来分析依赖关系,便于理解和管理整个项目中各个依赖库之间的关系。
二、CocoaPods
1、CocoaPods 是什么
CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPods 的项目源码在 GitHub( https://github.com/CocoaPods )上管理。开发 iOS 项目不可避免地要使用第三方开源库,在使用第三方库时,除了需要导入源码,集成这些依赖库还需要我们手动去配置,还有当这些第三方库发生了更新时,还需要手动去更新项目,这就显得非常麻烦。而 CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间,通过 CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成。
2、CocoaPods 的原理
CocoaPods 的原理是将所有的依赖库都放到另一个名为 Pods 的项目中,然后让主项目依赖 Pods 项目,这样就把源码管理工作从主项目移到了 Pods 项目中。
- 第三方库会被编译成 .a 静态库或者 .framwork 的动态链接库供我们真正的工程使用。 CocoaPods 会将所有的第三方库以 target 的方式组成一个名为 Pods 的工程,该工程就放在刚才新生成的 Pods 目录下。整个第三方库工程会生成一个名称为 libPods.a 的静态库供我们的工程使用。 对于资源文件,CocoaPods 提供了一个名为 Pods-resources.sh 的 bash 脚本,该脚本在项目每次编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
- 原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错。我们的工程和第三方库所在的 Pods 工程会被以一个新生成的 workspace 的形式组织和管理,方便我们直观的管理工程和第三方库。
- CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。
3、CocoaPods 的核心组件
CocoaPods 是用 Ruby 写的,并划分成了若干个 Gem 包。与 CocoaPods 相关的两个目录:
- ~/.CocoaPods/repos/:这个目录存储远端的 podspec 文件到本地。master 是所有第三方的 podspec 索引文件。其它的是我们自定义的 podspec 索引文件。
- ~/Library/Caches/CocoaPods/:这个目录就是缓存文件的存储目录。
CocoaPods 在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、CocoaPods/Core 和 CocoaPods/Xcodeproj:
- CocoaPods/CocoaPods:这是面向用户的组件,每当执行一个 pod 命令时,这个组件将被激活。它包括了所有实用 CocoaPods 的功能,并且还能调用其它 Gem 包来执行任务。
- CocoaPods/Core:Core Gem 提供了与 CocoaPods 相关的文件(主要是 Podfile 和 Podspecs)的处理。其中Podfile用于配置项目所需要的第三方库,它可以被高度定制;Podspecs描述了一个库将怎样被添加进工程中。.podspec 文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
- CocoaPods/Xcodeproj:这个包负责处理工程文件,它能创建以及修改 .xcodeproj 文件和 .xcworkspace 文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用 CocoaPods/Xcodeproj。
4、CocoaPods给我们带来的好处
- 该工具是开源的,在GitHub上可查;
- 通过CocoaPods配置文件,可方便引入所需第三方开源库;
- 第三方库版本管理简单,升级容易;
- 方便查找第三方库(官网 or 命令行);
- 一般的项目都是团队合作,团队成员只需安装该工具就能完成第三方库引入(无需每人都做1.3中的步骤);
- 制作公共库,并发布至CocoaPods上,其他人可方便使用。
三、常用的开发IOS项目第三方库
- JSPatch:热修复,为项目动态添加模块,或替换项目原生代码动态修复 bug
- ReactiveCocoa: 函数响应式编程,使用 MVVM 搭
- RxSwift:Swift 函数响应式编程框架。
- BlocksKit: blocks 包,喜欢用 Block的非常适合,学习 block 的好库。
- JKCategories:iOS 中常用到的 Category ,可以好好学习
- YYKit:庞大、丰富的 iOS 组件,也是学习的好地方。
- CocoaAsyncSocket:异步 socket 通讯类库
- GPUImage:图片过滤
- AsyncDisplayKit:将图像解码、布局以及渲染操作放在后台线程,带来更好的用户交互体验的框架。
- PromiseKit : 一个用来出来异步的编程框架(Swift)
延伸阅读1:安装cocoapods的命令
sudo gem install cocoapods (osx 10.11以前)
sudo gem install -n /usr/local/bin cocoapods (10.11后苹果升级了安全策略)
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。