zoukankan      html  css  js  c++  java
  • iOS组件库创建(二)

    iOS组件库创建(一)

    四、私有组件库更新

    1. 打开你的MJKit.podspec文件,将原本的版本号改为0.2.0,与下面提交的tag保持一致

    2、代码更新,在pods的MJKit文件夹中创建新的视图MJView如下图:

    Classes文件夹本身就有,只需要添加显示,如图:

    代码提交: cd /Users/MacPro3/Desktop/project/MJKit

    git add . git commit -m '更新描述'

    git pull  //可能在更新之前需要先拉下代码

    git push origin master

    3、版本更新及索引库更新

    为更新索引库做准备

    git tag -a '0.2.0' -m '注释'

    git push --tags

    更新之后验证lib、spec

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

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

    验证成功,更新索引库:

    pod repo push MJSpecs MJKit.podspec --use-libraries --allow-warnings

    执行pod search MJKit 可查看新版本

    五、第三方依赖及子库Subspecs

    1、添加第三方依赖

    当私有库需要依赖其它第三方才可以正常使用时,我们就需要在spec文件中开启依赖,例如下面所示代码,表明当前仓库需要依赖AFNetworking和SDWebImage,如下图:

    修改后更新操作同上所述更新

    2、子库Subspecs

    但是这里存在一个问题,如果来了一位新的小伙伴,他所负责的部分只需要MJKit下的MJView,而MJKit下的其他文件才需要依赖第三方AFNetworking,此时他若是pod一整个MJKitt就是平白无故安装了第三方依赖库。这个时候需要用到Subspecs子库。

    例如,pod search AFNetworking,其中UIKit、NSURLSession、Reachability、Security、Serialization都是AFNetworking的子库,在Podfile中将pod 'AFNetworking'改为pod 'AFNetworking/Reachability'即可单独使用这一功能。

    子库格式:

    s.subspec '子库名称' do |别名|

    end

    因为这里已经分离出子库了,所以s.source_files和s.dependency就不能按照原来的podspec文件中的使用了,需要在子库里分别指定,所以直接把原来的s.source_files和s.dependency都注释掉。写法参考如下。

    # 如果MJView使用第三方依赖,就在其内部设置dependency
    s.subspec 'MJView' do |c|
        c.source_files = 'MJKit/Classes/MJView/**/*'
        c.dependency 'AFNetworking', '~> 3.0.0'
    end
    # 如果MJView不使用第三方依赖,在其内部不设置dependency,子库中谁使用谁设置
    s.subspec 'MJView' do |c|
        c.source_files = 'MJKit/Classes/MJView/**/* '
    end

    修改后再按之前的步骤更新索引库和组件库就可以了。

    如果遇到验证不通过,可以重新提交,清除之前的tag,重新提交

    删除本地tag:

    git tag -d test

    删除远程tag:(可以在平台删除)

    git push origin :refs/tags/test

    更新之后查找MJKit就可以看到子库,如下图:

    Pod search MJKit

  • 相关阅读:
    POJ2182Lost Cows
    BZOJ4003: [JLOI2015]城池攻占
    POJ1635Subway tree systems
    BZOJ1005: [HNOI2008]明明的烦恼
    POJ1182 NOI2001 食物链
    栈的链式实现
    栈的数组实现
    链表ADT的实现
    #ifndef的用法
    using namespace std
  • 原文地址:https://www.cnblogs.com/lulushen/p/14798875.html
Copyright © 2011-2022 走看看