cocoapods私有库之创建(一)

6,276 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情

前因

在iOS的开发中,必不可少的就是cocoapods.一般我们都是怎么使用.但随着对它的了解.你会不好奇.怎么创建自己的私有库吗?反正我是觉得很有意思.这里我们就先把创建私有库的整体流程,以及需要准备的知识点.统一梳理一下.后续也会落地执行,从创建发布再到使用的完整事例.

准备工作

工欲善其事,必先利其器

下面是我们开发私有库前的环境准备.

  • cocoapods 环境配置完成
  • git 环境配置完成

逻辑梳理

  • 需要创建
    • 远程podspec仓库
    • 远程代码仓库
    • 本地podspec仓库
    • 本地代码仓库
  • 实现逻辑步骤
    1. 创建远程podepec仓库

    2. 把远程podspec仓库添加到本地

      pod repo add name url
      
    3. 创建远程代码仓库

    4. 创建本地私有代码

      pod lib create name
      
    5. 关联本地私有代码和远程代码仓库

    6. 修改podspec文件配置,配置远程仓库地址,配置版本,以及代码tag.

    7. 验证本地库

      pod lib lint xxx.podspec --allow-warnings --use-libraries
      
    8. 验证远程库

      pod spec lint xxx.podspec --allow-warnings --use-libraries
      
    9. 提交到私有仓库

      pod repo push [本地podspec库名] [私有库名称].podspec --allow-warnings --verbose
      
    10. 提交索引到cocoapod

      pod trunk push xxx.podspec --allow-warnings --use-libraries
      
    11. 使用私有库

落地执行

  1. 制作Spec Repo

    • 创建远程Spec Repo

      github或者Gitee等仓库管理工具上,创建自己的私有库,这里我用的是GItee ,如图所示

      init_cangku.png

    • 关联Spec Repo

      创建完成后,打开你的电脑终端.执行关联操作

      • 语法

        pod repo add [私有库索引名字] [远程私有索引库地址]
        
      • 实战

        pod repo add TTSpecs https://gitee.com/tengteng_fan/tt_-spec
        
    • 查看本地repo

      执行pod repopod repo list,即可查看本地已关联的Repo.如图所示

      init_spec.png

      从控制台的输出,我们可以发现,我们创建的私有索引库已经关联到本地.至此私有索引库创建完成.

  2. 制作私有库

    1. 创建远程仓库

    2. 创建私有库

      • 语法
        pod lib create [私有库名字]
        
      • 实战
        • 创建

          pod lib create ucm_news
          

          执行过程如下所示

          init_lib.png

          init_work.png

          此时我们的私有工具库就创建完成,如下所示

          init_pro.png

          简单说一下文件的含义

          文件名含义
          ucm_news.podspec私有库配置文件(重点) 后续我会单独针对它好好讲解一下
          Classes功能实现代码的存放处
          Assets资源文件存放处,如图片字体
  3. 使用私有库

    1. 在终端cdExample文件夹下,执行
      pod install
      
    2. 执行结果
      • 正常

        我们就会在Development Pods目录下,看到我们的私有库,如下所示

        init_local.png

        Development Pods: 存放引入的本地私有库的地方

      • 异常

        如果执行结果如下所示

        init_err.png

        一般出现这个问题,你就需要检查私有库ucm_news.podspec文件的配置.比如ucm_news.podspec设置最低支持系统版本是iOS10

        config_spec.png 但在Example文件下.podspec配置的是ios9,如下所示

        init_podfile.png

        还有就是依赖库支持静态库,但你配置的私有库不支持,也会出现上面的错误.所以如果出现上面的报错,请仔细排查.podspec文件的配置.