Cocoapods 创建第三方框架
时间:2022-06-01
本文章向大家介绍Cocoapods 创建第三方框架,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、上传项目到github
将框架中的主要文件放入到一个指定文件夹中,比如叫Classes或者Lib都可以
目录结构
- 打开终端,cd到框架目录
cd /Users/lxf/xxxx/LXFPhotoHelper
- 初始化仓库
git init
- 将当前目录添加到缓存区
git add .
- 提交到本地仓库
git commit -m '描述'
- 添加远程仓库地址
git remote add origin https://github.com/LinXunFeng/xxx.git
- 提交到远程仓库
git push origin master
如果出现如下提示
fatal: unable to access 'https://github.com/xxx/xxx.git/': The requested URL returned error: 403
原因是本地缓存了用户名和密码 编辑.git目录下的config文件
vi .git/config
找到url那一行,在github.com前加上用户名后保存,再重新执行推送操作
url = https://LinXunFeng@github.com/LinXunFeng/xxx.git
- 打标签
// 具体说明可以执行`git tag --help`后查看
// git tag -a '版本号' -m 'tag描述'
// 注意一下,这里打的标签只是在本地
git tag '0.0.1'
- 推着所有标签至远程仓库
// 只推着指定版本
// git push origin 版本号
git push --tags
二、创建并修改podspec文件
- 创建Spec文件
// 名称一般与工程名称保持一致
pod spec create 框架名称
podspec文件
- 修改Spec文件
s.name = "LXFPhotoHelper(仓库名称)"
s.version = "0.0.1(版本号,这里跟下面s.source中的tag有关)"
s.summary = "对你自己仓库的简单描述,不要写太多字"
s.description = "这个是详细描述,这里需要注意的是,这里文字的长度需要比
s.summary的要长,不然会出现警告"
s.homepage = "仓库首页地址,如https://github.com/LinXunFeng/LXFPhotoHelper"
s.license = "MIT"
s.author = { "LinXunFeng" => "598600855@qq.com" }
# source存放的地址是代码的真正地址
s.source = { :git => "仓库对应的git地址,如https://github.com/LinXunFeng/LXFPhotoHelper.git", :tag => "#{s.version}" }
# pod install时真正下载下来的文件路径,这里指定的是你仓库下的Classes目录中的所有.h和.m文件(填写的是相对地址)
# ** 通配目录
s.source_files = "Classes", "Classes/**/*.{h,m}"
# s.library = "sqlite3" # 框架依赖系统的sqlite3
也可以上官网的手册【Podspec Syntax Reference】上查看
这里需要我们注意的是s.version= "0.0.1"
,这里的版本号要与刚刚打的tag一致
三、注册trunk
// --verbose 打印详情信息
// pod trunk register 邮箱 '你的名称' --verbose
pod trunk register 598600855@qq.com 'LinXunFeng' --verbose
然后去验证邮箱
验证成功
验证成功后会提示我们回到终端,并敲入pod trunk push 名称.podspec
四、上传Spec
执行pod trunk push
后会有一个审核的过程,如果提示没有通过,有ERROR就修改好后重新push,如果只是WARN可以选择在pod trunk push
后面加上--allow-warnings
来忽略它们
pod trunk push LXFPhotoHelper.podspec --allow-warnings
如果出现如下信息,则说明你的框架名字已被占用,得重新改个名字~ 所以,在创建你自己的cocoapods仓库时最好是到cocoapods.org上先查一下有没有相同名字的
[!] You (xxx@qq.com) are not allowed to push new versions for this pod. The owners of this pod are yyy@qq.com.
上传成功后会自动帮我们更新本地仓库,如果无法搜索到自己的框架,可以先删掉本地的索引文件后再搜索一次
rm ~/Library/Caches/CocoaPods/search_index.json
当使用pod search 命令可以搜索自己的框架时, 那么就意味着审核通过了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- dnspod通过接口解析本地ip python脚本
- 如何修复WordPress死亡白屏(WSoD)故障问题
- linux: 添加一个IP地址
- Nginx简易防CC策略规则
- 如何编写和优化WordPress网站的Robots.txt
- 如何处理WordPress网站404状态死链
- (三)RecyclerView简单滑动场景分析
- AWS EC2实例开启IPv6方法 阅读模式
- centos7宝塔环境安装VeryNginx waf系统实现高级防火墙功能
- 腾讯云中关于授权子用户QCloudResourceFullAccess权限后使用api接口创建购买cvm没有支付权限的解决办法
- centos7中systemctl系统服务和资源限制故障
- centos7 安装zabbix并监控windows服务器
- 宝塔面板插件-shadowsocks可视化管理
- Android面试知识笔记:那些年面试官常问的知识点...(附详细解析)
- 聊聊dubbo-go的failbackCluster