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

背景

随着项目的越做越大,项目里面很多东西都在别的项目里面能进行重复使用,这个时候我们可以使用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。
  • 私有组件的大概使用到此完成。

结语

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容