如何让自己的iOS库支持Cocoapods

2020-03-31  本文已影响0人  崇山峻岭

前言

很多时候, 通过cocoapods导入第三方库, 会觉得很方便, 但是过去的自己一直很懒, 自己写的小工具, 每次写项目都是粘过来贴过去, 最近疫情严重, 工作不忙也尝试把自己曾经写的小工具发表到cocoapods上, 方便自己使用, 也方便有同样需求的人使用, 本文主要记录全过程!

正文

  1. 创建仓库

    在github上创建自己的代码仓库, 并将代码库同步到本地, 创建xcode Project, 以便后续使用

  2. 注册Trunk 关于 Trunk

    首先来说明一下什么是Pod Trunk, 点击上面超链可以跳转至官方教程, 这里简单的描述一下吧, Cocoapods trunk 是一种身份验证和CocoapodAPI服务, 要想发布或更新库到cocoapods上你需要注册Trunk

    终端中输入下面的的指令
    ///yourEmail即你的邮箱, xxx换成用户名
    pod trunk register yourEmail 'xxx' --verbose
    

    执行完上面的命令之后会邮箱会受到一条邮件:

    Hi xxxx,
    
    Please confirm your registration with CocoaPods by clicking the following link:
    
      https://trunk.cocoapods.org/sessions/verify/xxxxx
    
    If you did not request this you do not need to take any further action.
    
    Kind regards,
    the CocoaPods team
    
    

    点击邮件超链验证即可

    关于Trunk的命令可以在终端之执行帮助命令获取

    pod trunk [command] --help

    获取到的如下命令

    Commands:
    
        + add-owner      Add an owner to a pod
        + delete         Deletes a version of a pod.
        + deprecate      Deprecates a pod.
        + info           Returns information about a Pod.
        + me             Display information about your sessions
        + push           Publish a podspec
        + register       Manage sessions
        + remove-owner   Remove an owner from a pod
    
    Options:
    
        --silent         Show nothing
        --verbose        Show more debugging information
        --no-ansi        Show output without ANSI codes
        --help           Show help banner of specified command
    

    通过pod trunk me 命令可以查看已注册的信息如下

      - Name:     username
      - Email:    your email
      - Since:    March 20th, 03:59
      - Pods:     None
    
  1. 创建.podspec文件

    在欲提交的仓库同级目录的地方创建, 例如xxx文件夹为我要上传的框架, 则在同级目录先创建xxx.podspec文件, 通过一下命令创建

    //xxx即你的仓库文件夹
    pod spec create xxx
    
  1. 配置podspec

    podspec官方示例请点击 官方示例 , 关于如何编辑podspec文件, 有的人喜欢再命令行中折腾使用vim工具可以编辑, 而我更喜欢使用编辑器编辑, 选择vscode打开, 图形化的编辑更方便, 当然这个根据个人喜好选即可, 刚创建的文件中每个项目都有配置注释, 有耐心的可以研究研究, 基本都是英文, 以下为官方示例我粘贴一段

    Pod::Spec.new do |spec|
     #仓库名字
      spec.name         = 'Reachability'
      #版本
      spec.version      = '3.1.0'
      #证书, 这个是必须要有的, 而且对应仓库里也应该有license文件
      spec.license      = { :type => 'BSD' }
      #仓库服务地址, 一般都放在github上
      spec.homepage     = 'https://github.com/tonymillion/Reachability'
      #作者名字, 可以直接赋值 'youname' 
      spec.authors      = { 'Tony Million' => 'tonymillion@gmail.com' }
      #概况,简单介绍一下这个库
      spec.summary      = 'ARC and GCD Compatible Reachability Class for iOS and OS X.'
      #指定分支或者标签
      spec.source       = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }
      #仓库文件夹   *是通配符,  可以写 File/*, 意思就是File文件夹下的所有文件
      spec.source_files = 'Reachability.{h,m}'
      #依赖的库
      spec.framework    = 'SystemConfiguration'
      #平台版本, 
      spec.platform = :ios, "7.0"
      
    end
    
  1. 验证podspec文件

    执行如下命令

    pod lib lint yourRepository.podspec
    
    

    执行以上命令如果没问题最终会的到如下结果
    xxx passed validation. 当然有可能你不那么一帆风顺, 如果不顺利的话, 就根据报错内容去看看是那一条配置错了, 他的报错信息还算比较人性化, 基本都能看得懂

  1. 推送podspec, 命令如下:

    pod trunk push xxx.podspec
    

    如果没有意外你会得到如下反馈

    --------------------------------------------------------------------------------
     🎉  Congrats
    
     🚀  XXX (0.0.1) successfully published
     📅  March 22nd, 09:21
     🌎  https://cocoapods.org/pods/XXX
     👍  Tell your friends!
    --------------------------------------------------------------------------------
    

这里需要注意一下, 在第3步中 spec.source的配置内容 tag后的名称即你需要对项目打的标签名, 所以这里一定要注意, 如果名字不一致会出错, 打标签应该都能处理吧, 可以通过git tag命令去给仓库打标签, 我还是偏好使用图形化工具 sourcetree, 记得要同步到服务器端,

完成以上步骤就可以开开心心的在别的项目中导入自己的框架了, 祝你玩的愉快, 有任何问题随时可以留言交流

详细可以参照示例: 示例

上一篇 下一篇

猜你喜欢

热点阅读