zoukankan      html  css  js  c++  java
  • Cocopod上更新上传自己的开源框架供别人下载

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

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

    第一步

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

    第二步

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

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // 进入到项目目录下  
    2.   
    3. cd xxx/xxx/xxx  
    4.   
    5. // 创建Podspec文件  
    6.   
    7. pod spec create “你的Podspec名字”  



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

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    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

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. $ git commit -m "说明"  
    2. $ git tag 0.0.1 // tag 和上面你设定的一样 一般tag号和版本号一致  
    3. $ git push --tags  
    4. $ git push origin master  

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

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. pod lib lint "podspec名字".podspec --allow-warnings  

    若我们看

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

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

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

    总结常见错误:

    问题:这种错误怎么办?

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. - ERROR | [iOS] The `source_files` pattern did not match any file.   

    查了一些资料:

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

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. s.source  = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }  
    2. s.source_files  = "GCTools/*.{h,m}"  

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

    Git log:   也可以在终端查看

    完美解决!如下:

  • 相关阅读:
    VS远程调试项目,利用msvsmon
    web deploy发布网站各种问题
    IOS中UITabBar、UIDatePicker、Picker View控件练习(二)
    IOS中多视图应用视图切换
    IOS中多视图应用设置首界面
    Asp.net中Application Session Cookie ViewState Cache Hidden
    UI控件(scrollView、tableView)的基本使用
    UI错误集
    UI小项目之拳皇动画的实现(抽取加载图片和播放音乐的方法)
    UI控件(Label、ImageView、Button)的基本使用
  • 原文地址:https://www.cnblogs.com/fuunnyy/p/6118293.html
Copyright © 2011-2022 走看看