【iOS开发】Cocoapods详解-使用及创建私有库
时间:2022-06-09
本文章向大家介绍【iOS开发】Cocoapods详解-使用及创建私有库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、前言
- 第三方代码管理
- 在多个项目间管理公共代码
- 组件化
二、项目使用CocoaPods
初始化
$ pod init
第一行:指明项目支持的iOS版本
platform :ios, '8.0'
CocoaPods
现在是通过target
来组织的,如果项目有多个target
,可以写多个target
为每个target
引入不同的第三方库。
写法:
target '78S_iOS' do
# pod 'xxx'
end
集成到现有的workspace,没试过。
workspace 'MyWorkspace'
什么时候用pod install
什么时候用pod update
-
pod install
用来为项目安装新的pod,不管你以前有没有运行过pod install
, 当在Podfile
中添加或删除了pod时,都应该用pod install
,(可以理解为你更新的你的Podfile文件 ,就用'pod install')。 - `pod update [PODNAME] 只有当你要更新已经存在的库到一个最新的版本时才使用。
关于pod install
- 运行这个命令,会下载
Podfile
中添加的新pod,并且打下载的pod
的版本信息等写到Podfile.lock
文件中。 - 运行这个命令,只会检查
Podfile.lock
文件中不存在的pod
,如果Podfile.lock
文件中已经存在的pod
,只会下载Podfile.lock
文件中保存的版本,就算这个时候这个库有一个新的版本,也不会去更新。对于Podfile.lock
文件中不存在的pod
,会下载Podfile
文件中声明的版本。
关于pod outdated
- 运行这个命令,
CocoaPods
会列出Podfile.lock
文件中保存的版本过旧的库(就是会列出有新版本的库)
关于pod update [PODNAME]
- 这个命令会更新指定
pod
的版本到最新版本,如果不指定pod
,则会更新所有的库到最新版本。所以为了让一个team里所有人的库都保持在一个相同的版本,版本控制要上传Podfile.lock
文件。尽量不要用pod update
-
pod update
这个命令会带上pod repo update
,repo
更新会很慢,可以添加参数--no-repo-update
来跳过repo update
.
三、CocoaPods
库的创建
从无到有创建一个库(ScalableImageView)
pod lib create ScalableImageView
还可以通过--template-url=你的url
来指定模版。可以clone官方模版 模版做一些定制修改。
官方模版会有几个选项:
- 用什么语言
Objective-C
orSwift
- 是否创建一个
Demo
项目 - 是否要一个测试框架
-
UI
测试框架 -
Objective-C
的前缀
目录结构:
podspec
文件
提交pod
到trunk
仓库
- 检查pod,有两个命令
-
pod lib lint
这个命令是在本地检查,不用连接网络 -
pod spec lint
要联网,会检查是远端
-
- 如果检查没有错误,要提交到
trunk
- 代码推送到git仓库,打上对应的
tag
- 首先要得到一个授权
pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
这条命令会发一个邮件到你提供的邮箱中,点击验证后才能进行下面的操作。 - 验证后,可以通过
pod trunk me
来查看你的授权信息 - 通过
pod trunk push
将当前pod提交到trunk
- 代码推送到git仓库,打上对应的
四、现有代码添加CocoaPods
支持
- 只要处理好
podspec
文件即可 - 通过命令
pod spec create xxx
来创建podspec
文件,更改文件对应的设置就可以
五、私有�Spec Repo仓库创建
- 首先在
github
或者自己的git
服务器上创建一个repo
来存放Spec Repo
- 将创建好的私有
repo
添加到CocoaPods
中
pod repo add REPO_NAME SOURCE_URL(仓库地址) (repo名最好跟仓库名保持一致)
验证是否安装成功
cd ~/.cocoapods/repos/REPO_NAME pod repo lint .
六、提交库到私有仓库
pod repo push REPO_NAME SPEC_NAME.podspec
七、在项目中使用私有仓库的pod
在Podfile文件中添加源
source 'https://github.com/xx/xx.git' // 自己的源
source 'https://github.com/CocoaPods/Specs.git' // 官方源
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- ES10(2019)有哪些更新和新特性?
- Flutter Icon IconFont(图标控件)
- Flutter TextField(输入控件)
- 常见的面试问题总结
- Flutter Button(按钮控件)
- 终极干货,数组去重且显示每一个数据重复的次数
- VUE引入 script, link
- Flutter Text(文本控件)
- 纯JS实现在一个字符串b中查找另一个字符串a出现的所有位置,并且不使用字符串的方法(递归)
- 【剑指Offer】替换空格
- 面试汇总(一):针对百度面试总结
- Shell awk命令
- 【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist
- redis学习(十一)
- 互联网软件常见开发方法