iOS之创建CocoaPods公有库教程
简介
在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中。
如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod install命令安装自己的框架该怎么做呢?下面,我就教大家一步一步的将自己的pods发布到CocoaPods中。如果你现在对CocoaPods还不太了解,推荐你看一看这篇文章:CocoaPods的安装与使用
流程
、注册CocoaPods账户信息
、创建共享库文件并上传到公有仓库
、编辑.podspec文件
、打tag, 发布一个release版本
、发布自己的库描述文件podspec给cocoapods
、关于查找和使用新创建的库
、更新维护podspec
下面就创建CocoaPods公有库做一下分享:
一、在github上创建项目,复制项目的链接路径,例如:https://github.com/sunjinshuai/MYSementManager;

备注:
1、GitHub仓库的名称,不允许重名。
2、开源协议,一般都选择MIT。
二、使用命令行、sourceTree或者GitHub Mac版将项目克隆到本地新建的一个文件夹中;
三、cd进入本地该文件夹,将自己之前的工程文件(demo)以及共享文件(共享库Lib)拖入其中,并创建公有仓库,例如:
pod spec create cocoaPodsName;

1、自己的工程文件(demo)以及共享文件(共享库Lib)。
2、
MYSementManager.podspec创建的公有库名称。
当Specification created at MYSementManager.podspec说明创建公有库成功。
四、使用文本编辑器或者sublime等编辑公有仓库信息(注意:引号不能搞错了,是英文格式的"",不是中文格式“”),默认选择文本编辑器。

备注:
、s.name:公有库的名称。
、s.version:公有库的版本。
、s.summary:公有库简短介绍。
、s.description:公有库详细介绍。
、s.homepage:公有库在GitHub上的地址。
、s.license:开源协议。
、s.author:作者。
、s.source:公有库在GitHub上的地址和版本号。
、s.source_files:公有库对外共享的.h和.m文件。
、s.requires_arc:是否支持ARC。
没有涉及到的字段可以去官方文档查阅。
五、编辑结束保存,并验证本地的公有仓库是否有效。
pod lib lint cocoaPodsName.podspec
六、验证有效后,然后再将本地该文件夹中所有的文件push到github上。
git add .
git commit -m "first commit"
git remote add origin https://github.com/sunjinshuai/test.git
git push -u origin master
使用git tag(此方法操作后再push上传一次)或者直接在github上点击release进入后创建release并给公有仓库打上tag。
$ git tag -m "first release" 0.0.
$ git push --tags #推送tag到远端仓库
七、注册trunk,例如:
pod trunk register 邮箱 ‘用户名’ --description=‘描述’
注意:
邮箱为github上的登录邮箱、用户名为github上的用户名。


作者:s_在路上
链接:https://www.jianshu.com/p/c852ab73ffa0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
iOS之创建CocoaPods公有库教程的更多相关文章
- iOS:最详细的创建CocoaPods私有库教程
一.感慨 说实话,创建这个CocoaPods私有库,我愣是搞了两个星期,创建的过程中,自己的感情波动是这样的:激情四射---->有点困惑----->极度困惑----->有点失望--- ...
- 从零开始创建CocoaPods私有库
为什么要创建CocoaPods私有库? 避免重复的造轮子 节约时间,方便管理自己的代码 精益求精 创建CocoaPods私有库 1.创建私有仓库工程 执行命令pod lib create SmartB ...
- 制作CocoaPods公有库和私有库
认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...
- 创建Cocoapods私有库
本文以自己在公司做的一个手势密码私有库GesturePasswordKit为例说明. 1.在gitlab(或者github,我这里使用的例子是在gitlab上)上创建git仓库 (确保授权正确,避免后 ...
- Mac终端的Cocoapods创建自己的私有库和公有库
一,前言 为什么要用Cocopods 通常在开发的过程中,大多时候,我们会处理一类相同的操作,比如对于字符串String的邮箱验证,是否为空,手机号验证,或者一些UIView的动画操作,我们为了避免写 ...
- 创建/发布cocoapods公共库
对于大多数iOS开发者而言,cocoapods都是一个非常便捷的第三方库引导工具,该工具可以帮助我们快速导入所需第三方库,并且进行相关配置. 本文即为描述如何发布一个第三方库,提供给所有的开发者使用. ...
- 工具第二天 cocoaPods 私有库的创建
之前介绍了cocoaPods的安装与使用,今天简单谈一下 自己的私有库运用cocoaPods依赖. cd到需要做库的工程目录下 创建一个podspec文件 创建:pod spec create 名称 ...
- 利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库)
利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库),完成预期的任务,大致有下面几步: 1.代码提交到github平台 2.创建.podspec 3. ...
- CocoaPods - 发布自己的模块(公有库、私有库)
CocoaPods发布框架到远程公有库 1.编写代码~上传远程仓库 git init git add . git commit -m '提交到本地分支' //关联远程仓库 git remote add ...
随机推荐
- hihoCoder2月29日(字符串模拟)
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...
- CS231n 2016 通关 第四章-反向传播与神经网络(第一部分)
在上次的分享中,介绍了模型建立与使用梯度下降法优化参数.梯度校验,以及一些超参数的经验. 本节课的主要内容: 1==链式法则 2==深度学习框架中链式法则 3==全连接神经网络 =========== ...
- dubbo 使用 filter 报错解决
dubbo可以用filter实现类似tomcat filter过滤器. 实现1.接口请求时间监控. 2.打印输入输出日志(输出日志有应用自己决定) 配置时出现报错. No such extension ...
- In-App Purchase Programming Guide----(一) ---- About In-App Purchase
About In-App Purchase In-App Purchase allows you to embed a store inside your app using the Store Ki ...
- lightoj 1074【spfa判负环】
题意: 给你一幅图,dis(u->v)的权值就是(w[v]-w[u])*(w[v]-w[u])*(w[v]-w[u]),所以有可能是负的,给你n个询问,给出最短路,长度<3或者不可达输出& ...
- Codeforces 61B【怪在读题】
搞不懂为什么DFS的写法崩了,然后乱暴力,因为题意不是很懂... 主要还是读题吧(很烦 #include <bits/stdc++.h> using namespace std; type ...
- CodeForces660B【模拟—水】
感觉模拟题用函数分块写比较清晰~传参的话,字符串要么直接全局,或者指针也是容易操作,总之思路清晰,然后分块清晰,模拟wa的少吧. 这题水题,不说了. #include <bits/stdc++. ...
- Java对象池示例
单例模式是限制了一个类只能有一个实例,对象池模式则是限制一个类实例的个数.对象池类就像是一个对象管理员,它以Static列表(也就是装对象的池子)的形式存存储某个实例数受限的类的实例,每一个实例还要加 ...
- andriod ndk配置
r7及以后版本不需要再配置cywin ,留影 先在path中配置ndk的环境变量,位置为ndk的根目录,也可在图5中的位置配置环境变量
- [Xcode 实际操作]八、网络与多线程-(20)时间控件Timer定时功能
目录:[Swift]Xcode实际操作 本文将演示时间控件Timer定时功能的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit cl ...