美文网首页iOS实用知识点
iOS-CocoaPods之上传自己的库

iOS-CocoaPods之上传自己的库

作者: JimmyCJJ | 来源:发表于2020-05-27 10:43 被阅读0次

    当你的才华撑不起你的野心时,你就应该静下来学习。 —— CJJ

    • 突然有一天,你觉得你的修行已经到了一定境界了,可以写自己的库玩玩了,那么就可以上传GitHub啦,同时可以上传到CocoaPods供他人使用,方便管理
    • 那么接下来看看上传到CocoaPods需要(踩多少坑吧)哪些步骤吧

    • 首先假设你已经上传了项目到代码托管平台(如github
    • 如果本地电脑没有该库,得克隆下来(如果有就忽略此步)
    git clone xxx.git  
    
    • 注册trunk
    sudo gem install cocoapods
    pod trunk register 403327747@qq.com 'JimmyCJJ' --verbose
    

    第一个指令是更新一下CocoaPods不管你现在是什么版本,这个指令也都没有坏处,他会升级到目前最高的正式版。
    第二个指令建议邮箱名和用户名与自己的github同步,之后去自己的邮箱中找到该邮件点击验证的链接完成注册

    • 完成之后再次进入终端查看自己注册信息
    pod trunk me
    
    • 如果成功的话可以看到如下图所示


      pod trunk me
    • 到工程目录创建podspec文件
    pod spec create CJJRouter  //这里的CJJRouter替换成你对应的库名
    
    • 配置自己的podspec文件
      方案一:找CocoaPods官方文档看怎么填写
      CocoaPods
      方案二:百度或者pull优秀的三方库看别人怎么填写,比如你现在看的这个(hhh)
      以下是我填写的部分
    Pod::Spec.new do |s|
    
    s.name                  = 'CJJRouter'
    s.version               = '1.0.2'
    s.license               = { :type => 'MIT'}
    s.summary               = 'CJJRouter实现了一句代码跳转任意控制器(可传参数),不需要再引用头文件,减少耦合和依赖'
    s.description           = 'CJJRouter is a tool to achieve pushing by one line of code.'
    s.homepage              = 'https://github.com/JimmyCJJ/CJJRouter'
    s.authors               = { 'JimmyCJJ' => '403327747@qq.com' }
    s.social_media_url      = 'https://www.jianshu.com/u/fd9922e50c1a'
    s.ios.deployment_target = '9.0'
    s.source                = { :git => 'https://github.com/JimmyCJJ/CJJRouter.git',:tag => s.version  }
    s.frameworks = 'UIKit'
    s.requires_arc = true
    s.source_files = 'CJJRouterDemo/CJJRouterDemo/CJJRouter/*.{h,m}'
    
    end
    
    • 填写podspec文件也是最容易出错的一步,请耐心根据错误信息改正,看不懂报错信息的话可以百度,基本都有解答,这里就不列出来了

    • 需要注意的是source_files,可以这么写,以spec同一个文件夹的路径为始,找到对应的库路径,这里是'CJJRouterDemo/CJJRouterDemo/CJJRouter/*.{h,m}'

      source_files
    • 修改完后把自己的项目提一次commitgithub

    • 再打一下tag

    git tag 1.0.1 //这里的1.0.1是例子,按实际版本情况打tag,每次更新都+1
    
    • 查看本地的所有tag版本
    git tag
    
    • 也可以删除本地的某一个tag
    git tag - d 1.0.0
    
    • tag推到远程
    git push --tags
    
    • tagcommit是两个不同的机制,就算commit全被reset了通过tag也可以找回代码。
    • 提交podspec-先验证
    pod lib lint
    
    • 提交podspec-验证成功后提交
    pod trunk push
    或
    pod trunk push --allow-warning
    
    • 上传成功
    • 此时如果使用pod update对应的库无法更到最新版本,搜也搜不到的话,试试以下命令更新cocoapods
    pod repo update
    
    • 然后搜索版本库
    pod search CJJRouter
    
    • 搜索成功
    
    -> CJJRouter (1.0.2)
       CJJRouter实现了一句代码跳转任意控制器(可传参数),不需要再引用头文件,减少耦合和依赖
       pod 'CJJRouter', '~> 1.0.2'
       - Homepage: https://github.com/JimmyCJJ/CJJRouter
       - Source:   https://github.com/JimmyCJJ/CJJRouter.git
       - Versions: 1.0.2, 1.0.1 [master repo]
    
    • 最后可以更新了
    pod update CJJRouter
    
    • 另外,也可以移除某一个版本
    pod trunk delete CJJRouter 1.0.1
    
    • 删除github上某个版本
    • git tag -d 1.0.0
    • git push origin :1.0.0

    相关文章

      网友评论

        本文标题:iOS-CocoaPods之上传自己的库

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