美文网首页iOS Developer
利用CocoPods建立远程私有库进行组件开发

利用CocoPods建立远程私有库进行组件开发

作者: dispath_once | 来源:发表于2017-09-14 14:27 被阅读39次

    背景

    随着项目的越做越大,项目里面很多东西都在别的项目里面能进行重复使用,这个时候我们可以使用CV的方式实现这种项目,但是这样存在一个在一个地方修改了复用代码,其他地方不能及时性的修改,针对这种情况我们就可以使用cocopod私有库的方式把能够复用的代码进行抽离出来,封装成对应的组件。

    建立私有Repo

    • 通过pod repo查看现在pod的仓库,一般情况我们本地只有一个master,然后我们需要手动的给repo添加自己的私有仓库。
    repo
    • 在git服务器上面初始化一个git仓库。这里的git服务器可以是外网的,也可以是公司内部自建的git服务器,我这里使用的是coding.net上面建立的私有库。


      git仓库
    • 通过pod repo add 名字 git地址添加私有repo。
      添加私有库
    • 到此私有repo已经添加完成。

    创建自己待传的组件

    • 把自己抽离出来的代码存放到指定文件夹里面,并建立对应代码的测试demo。


      存放代码的文件夹
    • 通过pod spec create 组件名字 组件的git地址创建组件的spec文件,并根据实际需求修改spec文件里面的内容。对应参考资料
        Pod::Spec.new do |s|
          #指定平台和版本
          s.platform     = :ios, '8.0'
          #名字
          s.name         = "CountDownButton"
          #对应版本
          s.version      = "0.0.2"
          #简短描述
          s.summary      = "CountDownButton"
          #详细描述
          s.description  = "一个倒计时的button,这是很长的描述"
          #代码介绍的主页
          s.homepage     = "https://coding.net/u/samhzx/p/MyRepo"
          #开源协议
          s.license      = 'Code is MIT, then custom font licenses.'
          #作者
          s.author       = { "xxxxx" => "xxxx@qq.com" }
          #代码的git仓库
          s.source       = { :git => "https://git.coding.net/samhzx/CountDownButton.git", :tag => "#{s.version}" }
          #代码引用的文件
          s.source_files  = "CountDownButton/**/*.{h,m}"
          s.requires_arc = true
        end
        
    
    • 修改完spec文件之后使用pod spec lint spec文件验证文件是否正确。如果出现错误根据错误提示进行相应的修改之后再次进行验证。注意:spec文件里面的version的值一定要和git仓库对应的tag一致。
      验证spec文件
    • 初始化对应组件的git仓库、上传组件代码到git仓库、标记git仓库的tag值。
      • 初始化本地组件git仓库使用git init
      • 关联远程git仓库使用git remote add origin git仓库地址
      • 把本地代码添加到git仓库使用git add .
      • 提交本地代码使用git commit -m '提交信息'
      • 提交到远程仓库第一次使用git push origin master;后面使用的时候git push
      • 给代码打上tag使用git tag -a 版本号 -m '版本的描述信息'
      • 使用git push --tags把本地所有tag上传到git服务器;也可以使用'git push origin 版本号'上传指定的tag。
      • 使用git tag -d 版本号删除本地对应的tag;接着使用git push origin :版本号同步本地删除的tag到服务器。
    • 使用pod repo push 私有repo名称 spec文件向自己的私有库上传对应的spec文件。
      上传spec文件
    • 到此组件上传到私有repo已经完成。

    使用私有repo

    • demo的Podfile文件:
        source 'https://github.com/CocoaPods/Specs.git'
        #私有Spec Repo
        #source 'https://git.coding.net/samhzx/MyRepo.git'
        platform :ios, '9.0'
    
        target 'CountDownButtonDemo' do
          use_frameworks!
          #pod 'CountDownButton', :podspec => '../CountDownButton.podspec' 
          pod 'CountDownButton', :path => '../' 
        end
    
    • 正常使用的Podfile文件:
        source 'https://github.com/CocoaPods/Specs.git'
        #私有Spec Repo
        source 'https://git.coding.net/samhzx/MyRepo.git'
        platform :ios, '9.0'
        target 'CountDownButtonDemo' do
          use_frameworks!
          pod 'CountDownButton' 
    
        end
    
    • 使用pod install进行安装,正常情况能安装上私有repo里面的对应组件,如果不行就使用pod repo update 私有repo名字更新一下对应的私有repo。
    • 私有组件的大概使用到此完成。

    结语

    项目中使用组件化不光是组件的管理,还涉及到组件的抽象,组件的分类,组件的组织等多方面的技术,需要了解的东西也较多,今天给大家带来的只是组件管理的一个简单介绍,后面有时间继续给大家分享组件开发的其他东西,在此谢谢大家哦。

    相关文章

      网友评论

        本文标题:利用CocoPods建立远程私有库进行组件开发

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