iOS组件化开发构建详细步骤

一、创建私有索引库

   选Github或者码云都可以,本例以Github为例。创建私有索引库用来作为自己组件库的索引:

二、本地添加私有索引库

添加:pod repo add 索引库名称 索引库地址

例:pod repo add ZYHModule https://github.com/zyhDeveloper/ZYHModule.git

查询:pod repo

三、创建组件库(同步骤一操作,在Github或者码云上创建)

四、创建组件工程

1、快速创建模版库

在命令行工具里cd进入桌面文件夹

执行:pod lib create 组件名

例:pod lib create XXModules

2、添加组件内容

我们把基础组件相关的东西丢到Classes文件夹中,并且把ReplaceMe.m文件删除

执行:

git rm XXModule/Classes/ReplaceMe.m

git add .

git commit -m  'firstCommit'

3、安装与测试本地库

在Example项目的Podfile文件中可以看到 “  pod 'LXFBase', :path => '../'  ”,模板库已经默认帮我们在Podfile中指定了LXFBase.podspec的位置,我们无需操作,直接在命令行工具里cd到Example文件夹,执行pod install

4、 修改Spec

四、上传组件代码

1、将代码提交到组件仓库

git add .
git commit -m 'firstCommit'
git remote add origin https://gitee.com/LinXunFeng/LXFBase.git
git push -f origin master

2、打标签

标签与spec中的s.version保持一致

git tag -a 0.1.0 -m "Release version 0.1.0"

git push origin --tags

五、提交podspec到私有索引库

先做个本地和远程验证

1、本地验证

pod lib lint --allow-warnings

2、远程验证

pod spec lint --allow-warnings

3、提交podspec

执行: pod repo push 私有索引库名称 spec名称.podspec
pod repo push ZYHModule XXModule.podspec --allow-warnings

六、使用私有库

测试下搜索我们的组件:pod search XXModules

1、添加Podfile文件

cd到开发的项目工程文件

执行:pod init

2、在Podfile的最顶部添加如下描述

// 第二行是为了保证公有库的正常使用

source 'https://github.com/zyhDeveloper/ZYHModule.git'

source 'https://github.com/CocoaPods/Specs.git'

添加:pod 'XXModules'

3、安装组件

执行:pod install

七、私有库的更新迭代

组件库当有新文件或者修改发生时,更新迭代执行:

git add .

git commit -m '更新描述'

git push origin master

1、版本更新

版本更新 这一步非常重要,为更新索引库做准备

git tag -a 0.2.0 -m "Release version 0.2.0"

git push origin --tags

2、修改spec文件

打开你的xx.podspec文件,将原本的版本号改为0.2.0,与刚刚的tag保持一致

git add .

git commit -m '更新描述'

git push origin master

3、验证Spec

pod spec lint --allow-warnings

4、更新索引库

// pod repo push 索引库名称 xxx.podspec

pod repo push ZYHModule XXModule.podspec --allow-warnings

5、更新使用

// --no-repo-update 不更新本地索引库 ,因为刚刚已经自己手动更新过了,所以这里我们选择跳过更新

pod update --no-repo-update

八、子库Subspecs的使用

如果我们只需要用到SDWebImage中的GIF功能,那么并不需要将整个SDWebImage都下载下来,在Podfile中将~~pod 'SDWebImage'~~ 改为 pod SDWebImage/GIF即可单独使用这一功能。

子库格式

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

end

因为这里已经分离出子库了,所以s.source_filess.dependency就不能这么使用了,需要我们在子库里分别指定,所以我们直接把原来的s.source_filess.dependency都注释掉。写法参考如下

#s.source_files = 'XXModule/Classes/**/*'
# s.dependency 'SDWebImage', '~> 4.3.3' 

s.subspec 'Cache' do |c|

c.source_files = '
XXModule/Classes/Manager/**/*'
c.dependency 'SDWebImage', '~> 4.3.3'
end 

s.subspec 'Category' do |c|

c.source_files = '
XXModule/Classes/Category/**/*'
c.dependency 'SDWebImage', '~> 4.3.3'

end

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

pod spec lint --allow-warnings

pod repo push ZYHModule XXModule.podspec --allow-warnings

pod update --no-repo-update 

如需在某个工程添加子库,可执行:

pod 'XXModule/Manager'

pod install

猜你喜欢

转载自www.cnblogs.com/Mr-zyh/p/11005086.html
今日推荐