美文网首页
iOS组件化

iOS组件化

作者: 旒澐兲芐 | 来源:发表于2021-01-29 09:22 被阅读0次

    一、新建一个Lib(自己起名)文件夹,用来存放组件库(其他独立工程)

    然后cd到Lib下

    执行

    1.  pod lib create TRUNetworking

    其中TRUNetworking就是你自定义的一个工程名字,也就是你的其中一个组件或者业务模块

    然后根据提示,生成pod工程模板 然后根据提示,生成pod工程模板

    打开新建的TRUNetworking工程里的Example,可以看到pods里面,有个ReplaceMe的文件,意思就是要替换它,换成我们自己需要对外提供的类。

    新建一个类,比如TRUNetworking,复制粘贴到ReplaceMe同级目录下,并删掉ReplaceMe.m文件

    之后cd到Lib/TRUNetworking/Example/文件目录下,执行

    pod install

    二、壳工程使用本地组件库

    首先cd到壳工程LZDemo目录下,修改LZDemo的Podfile文件,增加

    pod 'TRUNetworking', :path => 'Lib/TRUNetworking'

    执行

    pod install

    这样壳工程就pod到本地组件库的内容了,原理跟使用平时的第三方远程库一样。只不过这次使用的是本地的。只不过本地的pod放在了Development Pods文件夹里面,这个文件夹里的内容其实是可以修改的,修改后立刻生效,会比远程pod需要提交版本号,本地再pod对应的版本号方便得多。

    三、关联git

    完成了本地pod依赖,但是我们肯定不会是个人开发,否则弄这个组件化的意义也不大,所以我们首先得提交到远程,一般公司里都会搭建私有仓库诸如GitLab,这里就拿GitHub来做演示。

    1)提交壳工程到远程

    首先,在Github上Create a new repository

    然后,cd回壳工程目录下,依次执行

    git init

    初始化git

     git add .

    执行git add .的时候,会发现警告warning: adding embedded git repository: Lib/TRULogining之类的,是因为TRULogining目录下有它自己的git仓库,它俩是独立存在的,有另外一个git仓库专门管理他,因为它也是一个完整的独立工程,这里我们先忽略它。

    然后,提交初始化工程

    git commit -m "init project"

    接下来,我们要让这个工程和刚才在Github上创建的Repository关联

    git remote add origin https://github.com/liuzhao/LZDemo.git

    然后,提交初始化工程到远端的master,这里我们用了-f,表示强制提交,否则因为Github上还有readme之类的文件,需要解决冲突再pull,比较麻烦,基于是初始工程,直接强制push上去即可。

    git push origin master -f

    刷新一下Github上的LZDemo,会看到已经提交上去了

    以TRUNetworking为例,cd到TRUNetworking目录下,执行 标签版本

    git tag 0.1.0

    git push --tags

    刷新一下Github上的地址,会看到多了一个分支

    这个tag分支就是将来提供给别人依赖的版本号分支,有了它,别人使用你的组件的时候就可以根据版本号来控制了。

    接下来,使用trunk方式将代码发布到CocoaPods上

    改好后,在上传之前,最好先本地检查一下podspec是否合法

    执行下面语句

    pod lib lint --allow-warnings --no-clean

    如果出现passed validation,说明通过,可以提交到cocoapods上了

    执行

    pod trunk push AbcModel.podspec --allow-warnings

    成功后,就可以pod search到我们提交的库了(可能需要第二天才能搜索到)

    四.创建私有库

    把组件化上传自己私有库获取到地址,用cocoapods可以直接拉去代码

    相关文章

      网友评论

          本文标题:iOS组件化

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