美文网首页iOS开发新发现iOS学习iOS Blog
【最新】上传代码到cocoapod ,自己的框架提供给开发者使用

【最新】上传代码到cocoapod ,自己的框架提供给开发者使用

作者: 猫爪 | 来源:发表于2015-10-17 11:27 被阅读2084次

    一、创建的github仓库

    1 进入Github网站 www.github.com 登陆自己的账号后


    2 建立一个新的仓库 创建新的仓库创建新的仓库


    3 填写仓库信息 填写仓库信息填写仓库信息


    4 创建完毕后 创建成功创建成功


    二、上传代码到创建的仓库

    1 选择clone 到本地仓库


    mac 电脑中,有github的客户端 github MAC客户端github MAC客户端

    进入github网站后,右边栏 cloneclone
    也可以用命令终端的
    // 代码仓库clone 地址 git clone 
    https://github.com/boyXiong/XWSwiftRefreshT.git 
    
    

    2.编写代码 写入的代码写入的代码


    3.创建一个tag 版本 创建一个Tag创建一个Tag

    如果这里不会,可以看我的另一篇文章Git tag的使用

    http://www.jianshu.com/p/32054f3e415d

    4.上传到github 上传到github仓库上传到github仓库


    三、向本地git仓库中添加创建Pods依赖库所需文件

    1 这个文件需要放在clone 到的本地仓库目录下(需要在终端<code> cd</code> 进入<code>clone</code>的那个目录下)


    2 创建 podspec

    // 在命令终端 
    pod spec create XWSwiftRefreshT
    

    成功后 创建podspec成功创建podspec成功

    3 编写 <code>podspec</code> 文件,可以使用<code>Vim</code> ,或者<code>Xcode</code> , <code>Sublime</code>也可以,这是一个<code>Ruby</code>文件

     Pod::Spec.new do |s| 
        # 名称 使用的时候pod search [name] 
        s.name = "XWSwiftRefreshT" 
        # 代码库的版本 
        s.version = "0.1.2" 
        # 简介 
        s.summary = "The easiest way to use pull-to-refresh with Swift2.0 program language." 
        # 主页  
        s.homepage = "https://github.com/boyXiong/XWSwiftRefreshT" 
        # 许可证书类型,要和仓库的LICENSE 的类型一致 
        s.license = "MIT" 
        # 作者名称 和 邮箱 
        s.author = { "boyXiong" => "relv@qq.com" } 
        # 作者主页 s.social_media_url ="http://blog.csdn.net/boyXiong.com/" 
        # 代码库最低支持的版本 
        s.platform = :ios, "8.0" 
        # 代码的Clone 地址 和 tag 版本 
        s.source = { :git => "https://github.com/boyXiong/XWSwiftRefreshT.git", :tag => "0.1.2" } 
        # 如果使用pod 需要导入哪些资源 
        s.source_files = "XWSwiftRefreshT/**/*.{swift}" 
        s.resources = "XWSwiftRefreshT/Icon/xw_icon.bundle" 
        # 框架是否使用的ARC 
        s.requires_arc = true  
    end
    

    4 编写完成后,先进行本地检查,使用,如何可以就是绿色,不然会报错

      //pod spec lint [podspec 的路径]
      pod spec lint ./XWSwiftRefreshT.podspec
    

    5 注意 这个命令的检查原理,是调用Xcode app的命令检测如果Mac上安装了<code>两个Xcode</code> 那么他的检查是根据<code>Application/Xcode.app/</code>这种路径来的,两个Xcode 就要确保<code>Xcode.app</code>是最新的正式版本不是测试版本


    6 然后可以发送到cocoapod管理了

    //pod trunk push [podspec 的路径]
    pod trunk push ./XWSwiftRefreshT.podspec
    

    上传到cocoapod成功上传到cocoapod成功

    7.到这里如果成功就搜索的到,那么就是说可以成功使用了

     pod search XWSwiftRefreshT
    
    成功搜索到框架成功搜索到框架

    个人微信:wrdxxs
    个人Github:https://github.com/boyXiong
    个人简书主题:cocoa (一起开始写文章吧)
    关注我,持续推出新文章

    相关文章

      网友评论

      • B_C_H:我这可以 搜索到,但是到其他机器上还是搜索不到
      • 山是水的故事:我这边总是提示有几个.h找不到,那几个.h文件时MRC编写的,能不能帮我看下?

        non_arc_files = ['CommonFramework/3rd/JSONKit/*.{h,m}', 'CommonFramework/Network/ASIHTTPRequest/*.{h,m}']

        s.default_subspec = 'All'
        s.subspec 'All' do |spec|
        spec.ios.dependency 'CommonFramework/NonARC'
        spec.ios.dependency 'CommonFramework/ARC'
        end

        s.subspec 'NonARC' do |nonarc|
        arc_header = "CommonFramework/**/*.h", "CommonFramework.h", "CommonDef.h", "CommonImg.h"
        nonarc.source_files = non_arc_files + arc_header
        nonarc.compiler_flags = '-fno-objc-arc'
        nonarc.frameworks = 'CoreGraphics', 'Foundation', 'UIKit', 'ImageIO', 'CFNetwork', 'CoreTelephony','SystemConfiguration','MobileCoreServices'
        nonarc.libraries = 'z', 'c++','sqlite3.0', 'xml2.2'
        nonarc.requires_arc = false
        end

        s.subspec 'ARC' do |arc|
        arc.source_files = 'CommonFramework/**/*.{h,m}', 'CommonFramework.h', 'CommonDef.h', 'CommonImg.h'
        arc.public_header_files = 'CommonFramework/**/*.h', 'CommonFramework.h', 'CommonDef.h', 'CommonImg.h'
        arc.exclude_files = non_arc_files
        arc.prefix_header_file = 'CommonFramework/CommonFramework-Prefix.pch'

        arc.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2'}
        arc.frameworks = 'CoreGraphics', 'Foundation', 'UIKit', 'ImageIO', 'CFNetwork', 'CoreTelephony','SystemConfiguration','MobileCoreServices'
        arc.libraries = 'z', 'c++', 'sqlite3.0', 'xml2.2'
        arc.requires_arc = true
        end
        山是水的故事:@山是水的故事 提示JSONKit.h文件找不到 fatal error: 'JSONKit.h' file not found
      • f1535a71d2d8:第四步 总是报错 - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file. 怎么解决。。。
        猫爪:@浮尘4848 你可以看看,我那个github项目,下载下来,然后,看看我那个podspec 文件,和对应的 代码路径
        f1535a71d2d8:@猫爪 错了 我是知道了 关键是我怎么改都不对 这个应该怎么弄?
        猫爪:@浮尘4848 说明 你那个 podspec 文件中的 s.source_files 写错路径了
      • Luoyuanfeng:请问- WARN | xcodebuild: LYFLooper/LYFLooper/LYFLooper.m:241:13: warning: variable 'row' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]应该如何解决?
        猫爪:@Luoyuanfeng 警告,如果你确认没问题,可以使用命令 忽略
      • JonneyDai:写的不错
      • 篮球火:值得研究:smile:
      • wangjun:卡在第四步了,一直校验不通过。
        而且没有错误详细信息,没有指出spec文件具体哪里写错了,求解惑。

        终端报错只有这一句:[!] The spec did not pass validation, due to 2 errors and 1 warning.
        zhiyi:@wangjun 直接push提交pod,然后会有error和warn提示的,不过比较慢
        wangjun:关键是没有任何提示啊,报错语句就那么一句话。
        猫爪:@wangjun 上面说明有 有 2 个 errors 说明是有问题, 根据它提示的错误去修改
      • CoderRyan:还可以,不错。
      • 风了个1:回去细读,收藏了

      本文标题:【最新】上传代码到cocoapod ,自己的框架提供给开发者使用

      本文链接:https://www.haomeiwen.com/subject/zldacttx.html