美文网首页
CocoaPod 私有库搭建

CocoaPod 私有库搭建

作者: 莪的世界木有如果 | 来源:发表于2018-10-17 15:54 被阅读41次

    开始说明说明步骤之前,先做一个场景假设:
    现在我要把自己项目中的首页模块Home做成私有库,方便之后的组件化执行。基于这个场景我们开始说明这个步骤:

    创建一个远程索引库,这个远程索引库叫什么名字,可以自己定义,我就使用当期的项目来命名,为Business,这是个索引库,后续这个项目里面的其他模块的索引文件podspec都会放到这个下面。

    • 我们先要去coding(现在Coding和腾讯云合作,升级后就在腾讯云开发者平台)上面创建一个项目,命名为Business,如图:


      Business库
    • 创建一个repo索引库Business,地址为上面创建的Business库git地址,指令为:

    pod repo add Business https://git.dev.tencent.com/wode_weiyi/Business.git

    这个地址https://git.dev.tencent.com/wode_weiyi/Business.git也可以使用ssh的地址。不过后面要在podfile文件里面要与之对应,不然会自动创建一个repo索引库。

    远程索引库创建完成后,下面就需要去创建一个测试的项目,测试Home模块单独出来的是否可用。建议使用pod指令创建,这样会避免后续的很多问题且简单。

    pod lib creat Home

    这条指令会让你做几个选择,如下面代码

    What language do you want to use?? [ Swift / ObjC ] 
     > Swift
    
    Would you like to include a demo application with your library? [ Yes / No ]
     > Yes
    
    Which testing frameworks will you use? [ Quick / None ]
     > None
    
    Would you like to do view based testing? [ Yes / No ]
     > Yes
    
    

    这里第一个需要自己注意下,下面的跟着写就可以了!不会影响后续操作。

    完成上述的选择后,你的目录文件会出现如图的样式:


    文件目录

    然后将单独出来的Home模块放到图中红色框中,然后把 ReplaceMe.m文件删除掉。

    三(1)

    执行指令

    pod install
    这样就完成了本地私有库的创建和测试工程,通过测试后,我们就可以把本地私有库制作成远程私有库了

    三(2)
    • 再去Coding上面创建一个项目Home,用来存放Home库,并用于配置Home.podspec文件。
    • 修改Home.podspec文件里面的一些参数,先看下文件里面都有什么参数配置:
    Pod::Spec.new do |s|
    
      s.name             = 'Home'
      s.version          = '0.1.0'
      s.summary          = '基础组件'
      s.description      = '包括基本配置,常量,扩展,工具类等'
      s.homepage         = 'https://dev.tencent.com/u/wode_weiyi/p/Home'
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
      s.author           = { 'huzhihui' => 'wonderfulhzh@163.com' }
      s.source           = { :git => 'https://git.dev.tencent.com/wode_weiyi/Home.git', :tag => s.version.to_s }
      s.ios.deployment_target = '8.0'
      s.source_files = 'xxx/Classes/**/*'
    
    end
    
    

    参数说明:
    s.version:版本,这个需要注意下,这里的版本需要和git上面的版本一致,不然是无法提交上去的
    s.summary:简单的描述
    s.description:详细描述,这个描述一定要比简单描述长
    s.homepage: 见下图中的的说明
    s.source:Home库的git路劲,修改git里面的地址就可以,见下图说明
    s.author:用户信息
    s.ios.deployment_target:支持的ios版本
    s.source_files: Home库中文件的地址,具体说明可参考CocoaPods 操作过程中出现的错误中的第一个问题

    地址说明
    三(3)
    • 修改完Home.podspec文件后,需要使用质量检测工具检测下当前的项目Home是否没有问题。指令为:

    pod lib lint --allow-warnings --use-libraries

    如果是swift项目的话,则会出现下面这个提示:

    -> Home (0.1.0)
        - WARN  | [iOS] swift_version: The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run: 
        `echo "2.3" > .swift-version`
    
    [!] BaseComponent did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
    You can use the `--no-clean` option to inspect any issue.
    
    

    这个提示就是当前swift版本不正确,修改下好了,具体怎么修改,用下搜索引擎就可以了,这里不过多说明,也可以查看CocoaPods 操作过程中出现的错误中的错误5

    问题都修复完成后,会得到以下提示,说明当前项目是没有问题了:

    -> BaseComponent (0.1.0)
    
    BaseComponent passed validation.
    
    
    • 接下来就要把添加的Home文件提交到本地的版本库中

    git add .
    git commit -m 'Home'

    • 关联远程私有库,第一次需要关联,这个git地址就是你要存放Home库的远程git地址,后面则不需要

    git remote add origin https://git.dev.tencent.com/wode_weiyi/Home.git
    git pull origin master //如果第一次关联的话,这语句是获取不到任何东西的,可以不写。后续的更新也可以不写
    git push origin master//将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

    三(4)

    上面都没有问题后,就需要将podspec文件上传到Business的索引库中。
    首先需要验证当前Home.podspec文件的正确性

    pod spec lint --allow-warnings --use-libraries

    由于我们前面都没有做过给git打版本号的操作,就会收到这个提示:

    -> Home (0.1.0)
        - WARN  | summary: The summary is not meaningful.
        - ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://git.dev.tencent.com/wode_weiyi/Home.git /var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59 --template= --single-branch --depth 1 --branch 0.1.0
    
    Cloning into '/var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59'...
    warning: Could not find remote branch 0.1.0 to clone.
    fatal: Remote branch 0.1.0 not found in upstream origin
    ) during validation.
    
    Analyzed 1 podspec.
    
    [!] The spec did not pass validation, due to 1 error.
    
    
    • 那就需要给git打版本号了

    git tag '0.1.0'//这个版本一定要和Home.podspec文件中的version一致
    git push --tags

    • 然后再去验证下Home.podspec文件,这一步一定不要省略,不然后面如果错了,就会更麻烦

    pod spec lint --allow-warnings --use-libraries

    验证通过的提示为:

    -> Home (0.1.0)
        - WARN  | summary: The summary is not meaningful.
    
    Analyzed 1 podspec.
    
    Home.podspec passed validation.
    

    步骤四

    第四步就是将验证通过的podspec文件提交到创建的Business本地索引库中。执行

    pod repo push Business Home.podspec --allow-warnings --use-libraries


    通过上述的步骤,就完成了远程私有库的创建。使用的时候这里说明下。针对私有库的使用,需要在Podfile文件里面指定source地址,一个是你私有索引库的git地址,一个是cocoaPods的公有库git地址。如图:


    image.png

    这两个souce都需要写,不然不是pod私有库找不到就是pod公有库找不到


    pod远程私有库创建就是这样,这是人为比较简单的方法。针对私有库的升级,则和私有库创建大同小异,替换掉之前Home项目里面的ReplaceMe.m同级的代码文件,然后从第三步走下来就好了!有问题欢迎咨询。

    相关文章

      网友评论

          本文标题:CocoaPod 私有库搭建

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