Cocopod上更新上传自己的开源框架供别人下载
2016-11-30 16:18
253 查看
为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢?
下面我一步一步带大家开源自己的框架。
这里就不详细介绍如何把项目更新到
我们需要给本地的项目新建一个
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
// 进入到项目目录下
cd xxx/xxx/xxx
// 创建Podspec文件
pod spec create “你的Podspec名字”
此时你已经在项目目录下创建了一个Podspec文件了
这个时候我们需要对他进行编辑
注意:最好用xcode 去编辑 防止错误 只能输入英文标点
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
Pod::Spec.new do |s|
s.name = “项目名字”
s.version ="版本号"
s.summary = "项目介绍"
s.homepage = "你的主页地址"
s.license = "MIT" //这里就选这个许可证
s.author ={"你的名字" => "邮箱"}
s.platform =iOS,"最低支持的系统"
s.source ={git =>"项目git地址",tag =>"tag号"}
s.source_files = "text/*/.(h.m)" //这里是项目路径要传的文件
s.framework ="UIKit" //依赖的系统库 可以依赖多个
// 若需要依赖其他开源的第三方库 可以写成下列形式 若需要有多个就复制下面代码 添加第三方库
// s.dependency "AFNetWorking"
// 如果需要配置依赖系统库
// s.framework = 'SomeFramework'// 设置依赖的系统库名称
// s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
// 需要依赖系统的library
s.library = 'iconv'// 设置只依赖一个系统的library
s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了
s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}
然后我们设置下tag号 然后推送到git
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ git commit -m "说明"
$ git tag 0.0.1 // tag 和上面你设定的一样 一般tag号和版本号一致
$ git push --tags
$ git push origin master
我们来验证下他是否符合要求。
若我们看
“你的podspec名字” passed validation
说明这个配置文件是没问题的。
若失败了。
我们就需要将远程tag删除 重新来过
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
删除tag
//查看tag
git tag
//删除一个指定的tag,并上传一个空tag到远程tag
git tag -d <tagname>
git push origin :refs/tags/你的tag号
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
在验证通过之后我们需要将代码提交到cocopods
pod trunk push "你的podspec名字".podspec --allow-warnings
如果没有出错 我们就算大功告成了。
通过pod search "项目名"去搜索你的第三方库吧。。
总结常见错误:
![](http://img.blog.csdn.net/20160628202640552)
解决方法:
解决方法:将最后提交的开源框架的类的提交码在 xx.podspec 中改成这种:
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
s.source = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
s.source_files = "GCTools/*.{h,m}"
commit来自最后一次提交:在github上可以看提交记录后面的加密码:
Git log: 也可以在终端查看
![](http://img.blog.csdn.net/20160628203029648)
完美解决!如下:
下面我一步一步带大家开源自己的框架。
第一步
把自己的框架更新到github上,为了提交地址给他人下载。
这里就不详细介绍如何把项目更新到
github上了
第二步
这个时候我们的项目已经挂在github上了
我们需要给本地的项目新建一个
Podspec描述文件
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
// 进入到项目目录下
cd xxx/xxx/xxx
// 创建Podspec文件
pod spec create “你的Podspec名字”
此时你已经在项目目录下创建了一个Podspec文件了
这个时候我们需要对他进行编辑
注意:最好用xcode 去编辑 防止错误 只能输入英文标点
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
Pod::Spec.new do |s|
s.name = “项目名字”
s.version ="版本号"
s.summary = "项目介绍"
s.homepage = "你的主页地址"
s.license = "MIT" //这里就选这个许可证
s.author ={"你的名字" => "邮箱"}
s.platform =iOS,"最低支持的系统"
s.source ={git =>"项目git地址",tag =>"tag号"}
s.source_files = "text/*/.(h.m)" //这里是项目路径要传的文件
s.framework ="UIKit" //依赖的系统库 可以依赖多个
// 若需要依赖其他开源的第三方库 可以写成下列形式 若需要有多个就复制下面代码 添加第三方库
// s.dependency "AFNetWorking"
// 如果需要配置依赖系统库
// s.framework = 'SomeFramework'// 设置依赖的系统库名称
// s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
// 需要依赖系统的library
s.library = 'iconv'// 设置只依赖一个系统的library
s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了
s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}
然后我们设置下tag号 然后推送到git
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ git commit -m "说明"
$ git tag 0.0.1 // tag 和上面你设定的一样 一般tag号和版本号一致
$ git push --tags
$ git push origin master
我们来验证下他是否符合要求。
若我们看
“你的podspec名字” passed validation
说明这个配置文件是没问题的。
若失败了。
我们就需要将远程tag删除 重新来过
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
删除tag
//查看tag
git tag
//删除一个指定的tag,并上传一个空tag到远程tag
git tag -d <tagname>
git push origin :refs/tags/你的tag号
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
在验证通过之后我们需要将代码提交到cocopods
pod trunk push "你的podspec名字".podspec --allow-warnings
如果没有出错 我们就算大功告成了。
通过pod search "项目名"去搜索你的第三方库吧。。
总结常见错误:
问题:这种错误怎么办?
[plain] view plain copy
- ERROR | [iOS] The `source_files` pattern did not match any file.
查了一些资料:
[code]
解决方法:
解决方法:将最后提交的开源框架的类的提交码在 xx.podspec 中改成这种:
[plain] view plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
s.source = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
s.source_files = "GCTools/*.{h,m}"
commit来自最后一次提交:在github上可以看提交记录后面的加密码:
Git log: 也可以在终端查看
完美解决!如下:
相关文章推荐
- 自己写的网络数据请求 第三方框架 断点续传 上传下载
- iOS中 如何将自己的框架更新到cocopods上
- android开源框架andorid-async-http使用(下载上传文件)
- JAVA文件上传下载开源框架
- iOS中 如何将自己的框架更新到cocopods上 韩俊强的博客
- android开源框架andorid-async-http使用(下载上传文件)
- iOS经验1:自己写的网络数据请求 第三方框架 断点续传 上传下载
- iOS中 如何将自己的框架更新到cocopods上 韩俊强的博客
- Android如何制作自己的依赖库上传至github供别人下载使用
- 将自己的框架更新到cocopods上
- 如何发布自己的开源框架到CocoaPods---持续更新中
- cocopods借鉴别人的代码以及自己应用总结
- 更新开源项目cocopods spec版本
- 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载
- Farseer.net轻量级开源框架 版本更新及下载
- 自己了三个框架(web,orm,ioc)现全部开源
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- (转)玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- 推荐下自己的开源框架:DataMapFramework
- [框架那点事儿-快速开发季]编写自己的数据持久层(5)更新/批量更新/批量插入