为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢?

下面我一步一步带大家开源自己的框架。

第一步

把自己的框架更新到github 上,为了提交地址给他人下载。
这里就不详细介绍如何把项目更新到github上了

第二步

这个时候我们的项目已经挂在github上了
我们需要给本地的项目新建一个Podspec描述文件

  1. // 进入到项目目录下
  2. cd xxx/xxx/xxx
  3. // 创建Podspec文件
  4. pod spec create “你的Podspec名字”

此时你已经在项目目录下创建了一个Podspec文件了
这个时候我们需要对他进行编辑
注意:最好用xcode 去编辑 防止错误 只能输入英文标点

  1. Pod::Spec.new do |s|
  2. s.name = “项目名字”
  3. s.version ="版本号"
  4. s.summary = "项目介绍"
  5. s.homepage = "你的主页地址"
  6. s.license = "MIT" //这里就选这个许可证
  7. s.author ={"你的名字" => "邮箱"}
  8. s.platform =iOS,"最低支持的系统"
  9. s.source ={git =>"项目git地址",tag =>"tag号"}
  10. s.source_files = "text/*/.(h.m)" //这里是项目路径要传的文件
  11. s.framework ="UIKit" //依赖的系统库 可以依赖多个
  12. // 若需要依赖其他开源的第三方库 可以写成下列形式 若需要有多个就复制下面代码 添加第三方库
  13. // s.dependency "AFNetWorking"
  14. // 如果需要配置依赖系统库
  15. // s.framework = 'SomeFramework'// 设置依赖的系统库名称
  16. // s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
  17. // 需要依赖系统的library
  18. s.library = 'iconv'// 设置只依赖一个系统的library
  19. s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
  20. // 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了
  21. s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}

然后我们设置下tag号 然后推送到git

  1. $ git commit -m "说明"
  2. $ git tag 0.0.1 // tag 和上面你设定的一样 一般tag号和版本号一致
  3. $ git push --tags
  4. $ git push origin master

我们来验证下他是否符合要求。

  1. pod lib lint "podspec名字".podspec --allow-warnings

若我们看

“你的podspec名字” passed validation
说明这个配置文件是没问题的。

若失败了。
我们就需要将远程tag删除 重新来过

  1. 删除tag
  2. //查看tag
  3. git tag
  4. //删除一个指定的tag,并上传一个空tag到远程tag
  5. git tag -d <tagname>
  6. git push origin :refs/tags/你的tag号
  1. 在验证通过之后我们需要将代码提交到cocopods
  2. pod trunk push "你的podspec名字".podspec --allow-warnings
  3. 如果没有出错 我们就算大功告成了。
  4. 通过pod search "项目名"去搜索你的第三方库吧。。

总结常见错误:

问题:这种错误怎么办?

  1. - ERROR | [iOS] The `source_files` pattern did not match any file.

查了一些资料:

解决方法:
解决方法:将最后提交的开源框架的类的提交码在 xx.podspec 中改成这种:

  1. s.source  = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
  2. s.source_files  = "GCTools/*.{h,m}"

commit来自最后一次提交:在github上可以看提交记录后面的加密码:

Git log:   也可以在终端查看

完美解决!如下:

Cocopod上更新上传自己的开源框架供别人下载的更多相关文章

  1. Android如何制作自己的依赖库上传至github供别人下载使用

    Android如何制作自己的依赖库上传至github供别人下载使用 https://blog.csdn.net/xuchao_blog/article/details/62893851

  2. 利用开源框架Volley来下载文本和图片。

    Android Volley是Android平台上很好用的第三方开源网络通信框架.使用简单,功能强大. 下载连接地址:http://download.csdn.net/detail/zhangphil ...

  3. Android 文件上传 使用AsyncHttpClient开源框架

    public void upload(View view) { AsyncHttpClient client = new AsyncHttpClient(); RequestParams reques ...

  4. 基于NetCore+SqlSugar+Layui开发出来的开源框架项目FytSoaCms问题处理

    最近刚好在学习NetCore框架所以就在网上搜索了一下相关的开源框架项目,正好在Github上找到了一个不错的开源框架所以推荐给大家看看哈哈哈. 1:项目相关技术 运行NetCore SDK版本为2. ...

  5. Android(java)学习笔记214:开源框架的文件上传(只能使用Post)

    1.文件上传给服务器,服务器端必然要写代码进行支持,如下: 我们新建一个FileUpload.jsp的动态网页,同时我们上传文件只能使用post方式(不可能将上传数据拼凑在url路径下),上传数据Ap ...

  6. 找呀志_通过开源框架引AsyncHttpClient上传文件

    一个.步骤: 1.加入权限(接入网络和可写) 2.获取上传文件的路径和推断是空的 3.如果为空.创建一个异步请求对象 4.创建上传文件路径 5.跑post请求(指定url路径.封装上传參数.新建Asy ...

  7. Android(java)学习笔记157:开源框架的文件上传(只能使用Post)

    1.文件上传给服务器,服务器端必然要写代码进行支持,如下: 我们新建一个FileUpload.jsp的动态网页,同时我们上传文件只能使用post方式(不可能将上传数据拼凑在url路径下),上传数据Ap ...

  8. 如何使用github上传自己的开源项目教程

    注意: 此教程只针对iOS项目,其他项目请参考此网站 http://jingyan.baidu.com/article/b907e627aadbb246e7891cf1.html 首先进入github ...

  9. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

随机推荐

  1. 最完整PHP.INI中文版

    ;;;;;;;;;;;;;;;;;;; 关于php.ini ;;;;;;;;;;;;;;;;;;;; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录 ...

  2. Linux 下从头再走 GTK+-3.0 (六)

    在 GTK3 中增加了一个 GtkApplicaton 类,便于我们处理多窗口程序,同时有了 GtkApplication 我们也更容易创建灵活,易用,界面美观的应用程序. 在前面的几个例子中,演示了 ...

  3. Xamarin.Android splash页面瞬间响应_避免APP启动闪白屏

    Application和Activity中的onCreate都进行了优化,基本没有耗时操作,但是启动应用之后还是会闪现一下白色背景,然后才进入Splash页面,对比了一下QQ.微信.微博等客户端,点击 ...

  4. 利用Google Speech API实现Speech To Text

    很久很久以前, 网上流传着一个免费的,识别率暴高的,稳定的 Speech To Text API, 那就是Google Speech API. 但是最近再使用的时候,总是返回500 Error. 后来 ...

  5. 边工作边刷题:70天一遍leetcode: day 71-2

    One Edit Distance 要点:有两种解法要考虑:已知长度和未知长度(比如只给个iterator) 已知长度:最好不要用if/else在最外面分情况,而是loop在外,用err记录misma ...

  6. CLOSE_WAIT?项目上线之际遇到这样的烦心事

    项目内测中,马上就要发布了,如今内测,所以很忙,今天运维那发来一堆状态,忘记截图了,简单来讲就是HTTP发送请求的时候有连接等待关闭,导致CLOSE_WAIT这个状态一直累加,没有释放,这样长时间下去 ...

  7. java 15-10 List的三个子类的特点

    List:(面试题List的子类特点) ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安全,效率低. Li ...

  8. eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能(同时解决自动补全变量名的问题)?

    对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情.如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助. eclipse代码里面的代码提示功能默认是关闭的,只有输入“. ...

  9. 部署Zipkin分布式性能追踪日志系统的操作记录

    Zipkin是Twitter的一个开源项目,是一个致力于收集Twitter所有服务的监控数据的分布式跟踪系统,它提供了收集数据,和查询数据两大接口服务. 部署Zipkin环境的操作记录:部署Zipki ...

  10. 18Mybatis_动态sql_foreach

    foreach: 向sql传递数组或List,mybatis使用foreach解析 应用场景: 在用户查询列表和查询总数的statement中增加多个id输入查询. sql语句如下: 两种方法: SE ...