SDK提交到CocoaPods
一:GitHub新建仓库,并clone到本地
1、注册GitHub账号并登录
2、右上方点击+,新建仓库(仓库名字(Repository name)、仓库权限(Public)、readme、license)


创建完成如下图:

3、检出仓库
新建一个文件夹SDK:

打开终端:

将FireRadarSDK文件夹拖进SDK里的克隆后的FireRadarSDK文件夹中

关掉终端,重新打开,切换到git仓库目录
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
cd /Users/huangzengsong/SDK/FireRadarSDK
二:更新CocoaPods版本
查看cocoapods的版本号
pod --version
确保cocoapods的版本号大于0.33,如果不大于需要先更新版本(无论版本号多大最好都更新一下)
sudo gem install cocoapods
注册Trunk账户(邮箱地址建议写成github注册的邮箱,用户名写成github对应的用户名)
pod trunk register 邮箱地址 '用户名' --verbose
注册命令执行完之后,对应的邮箱地址会收到一封邮件,“请确认您的注册CocoaPods通过点击以下链接:”,打开链接地址完成验证,如果地址不能点击就直接粘贴URL到浏览器上执行
查看自己的注册信息
pod trunk me

三:新建.podspec文件
pod spec create FireRadarSDK

注意:将代码提交到CocoaPods最容易出错的地方就是该.podspec文件,有可能多一个键或者少一个键、写错一个值都有可能在提交时出错,这里给出一份我的库中的,建议将我的.podspec文件拷贝一份,然后修改每个键对应的值,一般.podspec文件名和仓库的名字一致
Pod::Spec.new do |s|
s.name = 'FireRadarSDK'
s.version = '2.0.0'
s.summary = '安全反欺诈SDK'
s.description = '利用大数据处理,人工智能进行安全预警'
s.homepage = 'https://github.com/huangzs/FireRadarSDK'
s.social_media_url = 'http://www.fireradar.com.cn/'
s.license= { :type => 'MIT' }
s.author = { 'huangzs' => '759952579@qq.com' }
s.source = { :git => 'https://github.com/huangzs/FireRadarSDK.git', :tag => s.version }
s.source_files = 'FireRadarSDK/FRSDK.framework/Headers/*.{h}'
s.vendored_frameworks = 'FireRadarSDK/FRSDK.framework'
s.platform = :ios, '8.0'
s.frameworks = 'UIKit'
s.requires_arc = true
s.dependency 'AFNetworking', '~> 3.1.0'
s.dependency 'FMDB', '~> 2.7.2'
s.dependency 'AvoidCrash', '~> 2.3.0-beta'
end

s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介 s.homepage:项目主页地址
s.license:许可证 s.author:作者
s.social_media_url:社交网址
s.source_files:需要包含的源文件
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库,如 s.dependency = ‘AFNetworking’ s.dependency:依赖库,如有多个可以这样写
source_files:写法及含义建议大家写第一种或者第二种
"FireRadarSDK/* "
"FireRadarSDK/FireRadarSDK/*.{h,m}"
"FireRadarSDK/**/*.h"
- “*” 表示匹配所有文件
- “*.{h,m}” 表示匹配所有以.h和.m结尾的文件
- “**” 表示匹配所有子目录
四、提交工程到git,并打tag2.0.0版本
(.podspec, LICENSE 这两个文件必须提交到git上)
git add .
git commit -m "2.0.0"
git push
git tag 2.0.0
git push --tags

如果在操作过程中想删除tag,可以使用如下命令(删除tag不属于整个过程的步骤,这里只是提供删除tag的命令,在需要使用时可以查看):
git tag // 查看tag
git tag -d 2.0.0 //删除一个指定的tag
git push origin :refs/tags/2.0.0 // push到远程tag
五、 提交之前先验证.podspec文件是否合法
pod spec lint FireRadarSDK.podspec

有警告暂时不影响,下面提交用--allow-warnings忽略他们
六、提交.podspec文件到trunk中
pod trunk push FireRadarSDK.podspec
因为有警告 可以用下面的
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
pod trunk push FireRadarSDK.podspec --use-libraries --allow-warnings
只要验证通过,提交时一般没有什么问题, 一般会卡在“Updating spec repo ‘master’”, 这时不要关闭终端,要等,根据网络不同提交时可能要花几分钟时间,甚至是10分钟都有可能,成功如下图

七、重置cocoapods
pod setup
八、查找提交成功的库
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
pod search FireRadarSDK
如果查不到会报错如下
[!] Unable to find a pod with name, author, summary, or description matching
解决方案: 先删除search_index.json文件,然后再search (文件不存在时会自动下载,根据不同的网络可能要花一会时间,要等)
rm ~/Library/Caches/CocoaPods/search_index.json
pod search FireRadarSDK
九、从cocoapods移除刚才的框架
(移除框架不属于整个过程的步骤,这里只是提供移除框架的命令,在需要使用时可以查看)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
pod trunk delete FireRadarSDK 2.0.0
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
SDK提交到CocoaPods的更多相关文章
- CocoaPods 提交自己的库
今想把自己写的一个view提交到CocoaPods时候,突然发现pull request被拒了,原来从去年开始就改用trunk了... 网上那些folk 在提交的pull request的教程都不可用 ...
- Cocoapods的使用教程
前言 对于iOS App的开发,几乎都采用了Cocoapods来管理第三方库,那么对于我们开发人员来说,这是必备技能,必须要掌握如何使用.这篇文章就是介绍如何安装和使用CocoaPods的. 这篇文章 ...
- Cocoapods完整使用篇
温馨提示:在篇文章中所使用的Xcode版本为Xcode7. 一.什么是CocoaPods? 简单来说,就是专门为iOS工程提供对第三方库的依赖的管理工具,通过CocoaPods,我们可以单独管理每 ...
- 制作CocoaPods公有库和私有库
认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...
- 如何快速简单上传类库到CocoaPods - 图文攻略步骤
当自己的库已经上传GitHub后,那么如何快速简单的开源自己的库呢? 这里就是介绍如何将自己的类库上传到pods管理库,以便开源所有人都能方便使用. 准备前提: - 项目已上传到GitHub (注意, ...
- Cocoapods 应用第二部分-私有库相关
我们在这里,使用的是 第一部分使用pod lib create YohunlUtilsPod 创建的framework工程来说明.其创建过程在此就不重复了,当然你也可以下载我已经创建好的demo ht ...
- 如何发布自己的开源框架到CocoaPods【转】
在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中. 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod install ...
- 让自己写的项目支持Cocoapods管理
学会使用别人的 Pods 依赖库以后, 你一定对创建自己的依赖库很有兴趣吧,现在我们一起来制作自己的Pods依赖库. 1.创建自己的 github 仓库 上图中标识出了6处地方 Repository ...
- 让自己的开源项目支持CocoaPods
测试的时候找个自己封装的方法或UI控件就可以了 这里用我刚封装的Redirect重定向的请求体为例 1, 在github上创建一个Redirect,重要:记得选择开源协议 (MIT)(如果木有GitH ...
随机推荐
- zTree实现地市县三级级联报错(二)
zTree实现地市县三级级联 1.具体报错如下 2014-05-10 23:29:13 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolT ...
- zTree实现删除树节点
zTree实现删除树节点 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树</titl ...
- java.lang.NumberFormatException
1.错误描述 Exception in thread "main" java.lang.NumberFormatException: For input string: " ...
- Flex内存泄露解决方法和内存释放优化原则
Flex内存泄露解决方法和内存释放优化原则 你对Flex内存泄露的概念是否了解,这里和大家分享一下Flex内存释放优化原则和Flex内存泄露解决方法,希望本文的介绍能让你有所收获. Flex内存释放优 ...
- java 单例模式-饿懒汉模式
单例-饿汉模式 1.将构造方法私有化,不允许外部直接创建对象 private Singleton(){}2.自己在类的内部创建一个唯一实例 private static Singleton insta ...
- 配置文件properties读取使用的好方法
首先在spring配置文件applicationContext.xml中配置. <bean id="placeholderConfig" class="com.be ...
- QOpenGLTexture 两个纹理叠加
如何做纹理混合? 方法是,定义多个QOpenGLTexture,然后在fragment shader中添加相应的变量,然后把texture bind到对应的uniform变量上. 废话不多说 text ...
- .Net利用Newtonsoft进行解析Json的快捷方法
现在异构系统之间的数据交换多采用Json格式 .Net如何快捷地解析Json和将Object转换成json呢? 1.利用Newtonsoft解析Json字符串 在百度上查找资料,利用Newtonsof ...
- 简单的cookie读写封装
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Spring源码分析】非懒加载的单例Bean初始化过程(上篇)
代码入口 上文[Spring源码分析]Bean加载流程概览,比较详细地分析了Spring上下文加载的代码入口,并且在AbstractApplicationContext的refresh方法中,点出了f ...