谈起制作组件,就需要工具了。好的工具可以解决你很多问题,对于iOS组件化所用工具。较为普遍的就是Cocoapods,还有一种carthage。考虑到:
• 第三方库对Cocoapods的覆盖率比较广
• Cocoapods功能强大
• Cocoapods可参考的文案比较多,便于学习
是的,我们是使用Cocoapods做组件化的。制作组件,我主要分5点说明:
1 Cocoapods的安装
2 pod lib create 创建工程
3 撰写组件代码
4 生成组件私有库 (pod repo push)
5 集成并检测组件
Cocoapods****的安装
Cocoapods需要使用ruby的软件源,Mac 下都自带ruby ,但是经过我的实验,不同版本的ruby 安装出的cocoapods 的版本也是不同。所以建议先更新一下ruby,可采用Homebrew更新ruby;
安装Homebrew:
(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
更新****Ruby
$ brew install ruby
更新****Ruby****的源
ruby 的软件源 https://rubygems.org 因为使用的是亚马逊的云服务,所以被墙了,需要更新一下ruby 的源,使用如下代码将官方的ruby 源替换成由Ruby China社区维护的源:https://gems.ruby-china.org/
$ gem sources -l
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.org/
$ gem sources -l
升级****gem
$ sudo gem update --system
使用****gem****安装****Cocoapods
$ sudo gem install cocoapods
拉取****pod repo****库
$ pod setup
pod setup执行后,会输出Setting up CocoaPods master repo,这一步骤是Cocoapods将它的信息下载到~/.cocoapods目录下,耗时会比较久。这时你只要耐心等待就好。
配置完成之后,查看cocoapods版本:
$ pod --version
有版本输出,表示安装完成。
pod lib create ...
Cocoapods安装完成之后,我们就可以使用pod lib create创建出有结构化的工程,这个结构化的工程有以下几项优点:
• 目录结构统一
• 自动生成测试demo
• 便于直接制作pod私有库
在Podfile和.podspec添加组件工程需要依赖的组件库或第三方库
执行pod install,集成组件工程所需的依赖库
撰写组件代码
遵从iOS代码规范
集成并检测组件私有库
这一步在组件化的初期是很有必要的,为了保证私有组件的可用性。可要求开发人员在生成组件私有库之前。去集成检测组件私有库的可用性。暂建议两种方式:
1 通过本地path路径的方式;
2 git分支地址直接引用组件;
生成组件私有库
添加私有管理库;库名,库的****git****地址
$ pod repo add repoName sourceURL
校验
$ pod spec lint projectPath/specName.podspec --sources='https://github.com/CocoaPods/Specs.git,sourceURL'
添加****Podspec****到你的私有管理库
$ pod repo push repoName projectPath/specName.podspec
此命令也可以添加修饰约束字段,可通过pod repo push --help 查看
总结:制作组件,主要就是对****Cocoapods****部分能力的利用。