安装CocoaPods
sudo gem install cocoapods ,具体略过。
安装CocoaPods的svn插件
如果想要创建基于svn的私有库,那么还需要下载一个svn的插件cocoapods-repo-svn。可以通过gem来安装该插件
gem install cocoapods-repo-svn
该插件的使用也是非常简单,由于是基于cocoapods的插件,所以如果要使用的话,通过pod repo-svn COMMAND即可。
创建基于SVN的私有库
1.私有组件库目录创建。
在SVN的某一目录中创建一个ComponentLibrary目录,里面包含ComponentProjects和ComponentSpecs两个子目录。ComponentProjects目录存放所有私有库的源代码(新增,修改组件,都在这个目录下),而ComponentSpecs存放所有私有库各个版本的.podspec文件文件(不用关心这个目录)。然后我们在ComponentProjects目录中,创建一个文件夹,该文件夹就是一个私有库的工程,例如Common,如果用Cornerstone创建文件夹,记得勾选上Create"trunk","branchse" and "tags" subfolders。如果不用的话,需要手动创建trunk和tags目录。
2.在trunk目录上编写私有库代码,创建Pod项目工程文件(源码方式)
这里建议通过CocoPods的官方命令来进行Pod项目的创建,以下操作都以Common为例,命令如下:
pod lib create Common
不出意外地话,会提问你八个问题(cocoaPods v1.5.3版本):
分别解释一下
1.What is your name?
你的名字
2.What is your email?
你的邮箱地址
3.What platform do you want to use?? [ iOS / macOS ]
问组件化应用在哪个平台上,一般我们选iOS
4.What language do you want to use? [ Swift / ObjC ]
使用何种语言,可以根据项目是OC还是Swift自行选择
5.Would you like to include a demo application with your library? [ Yes / No ]
问是否需要一个Demo工程,方便调试Pod。如果是第一次做组件化,建议选Yes,方便pod的调试
6.Which testing frameworks will you use? [ Specta / Kiwi / None ]
问是否需要UT测试框架,可选择Specta和Kiwi,或者选择不要。
Specta是OC的一个轻量级TDD/BDD框架,参考github/specta
Kiwi是一个iOS的一个BDD框架,可以简单地部署和使用。github/kiwi
暂时选None
7.Would you like to do view based testing? [ Yes / No ]
如果上一步选择了Specta ,这步会生成一部分有利于做自动化测试的逻辑和代码
暂时选No
8.What is your class prefix?
这里可以指定你的项目前缀,这样在new一个类时会自动加上前缀。
如果是通过pod lib create命令创建的Pod,会在Example中自动配置好该pod的本地调试脚本,在里面编译调试你的组件代码。
3.修改.podspec文件
打开.podspec文件,其中s.source路径为svn上工程的根目录,s.version自行命名,如下参考
修改后记得把代码commit到svn中。
接着我们将该库,在svn上创建一个tag,tag值对应.podspec中的s.version值。
之后进行 spec 文件有效性检查,pod repo-svn lint Common.podspec
验证通过之后,我们就可以把这个.podspec上传了。
4.上传.podspec文件
在上传之前本地先要创建一个SVN私有仓库
命令行执行
pod repo-svn add ComponentSpecs http://svn/path/ComponentSpces
期间会让你输入svn的用户名和密码。
添加完毕之后,我们把这个.podspec提交SVN 私有仓库统一管理。
pod repo-svn push CommonSepcRepo
执行完毕,会发现SVN多了一条log,同时在ComponentSpecs目录下,多了Common目录以及其子目录
至此,我们的私有库组件已经制作完毕。
如何使用组件?
通过pod来集成使用
编写Podfile文件,其中加入
source 'https://github.com/CocoaPods/Specs.git'
plugin 'cocoapods-repo-svn', :sources => [
'http://svn/path/ComponentLibraries/ComponentSpecs'
]
在需要的target上写上pod Common 及版本(如果需要版本,不指定默认最新版本)。
命令行执行pod install
如何更新组件,发布新版本?
组件可能需要不断的完善,需要版本维护。
这时候,我们只需要在trunk 里修改.podspec文件中s.version为新的名称,假设修改为0.1.1。
然后把修改后的组件代码 commit到svn中。
创建新的tag,名称与.podspec中的一致。
执行pod repo-svn push Common命令,来上传新版本的.podspec文件。
在项目中通过 pod update Common,更新指定组件。