组件化
一、本地私有库方案优化
二、远程私有库
三、如何使用远端私有库
四、远程私有库的升级
五、远程私有库依赖问题
六、远程私有库设计优化
一、本地私有库方案优化:
存在的问题?
- 需要手动创建podspec文件,
- 没有使用git管理或者理解为手动使用git进行管理,
- 无法测试,需要再次手动创建测试工程。
- 优化方案一
- 在本地私有库的主目录下创建测试工程(本地私有库创建请参考组件化(第一篇))。
拉取本地库源码文件到测试工程
- 在测试工程里面选中本地私有库源码文件,右键->Show in Finder,你会发现它们真实存在的路径是本地私有库Classes文件夹下面。这样,我们在测试工程里修改、测试好了,也就代表着我们的本地库测试、修改完毕。
问题:回想一下我们刚刚做的步骤,创建测试工程、创建Podfiel文件....., 是不是有点复杂?是的吧,那咱们继续看优化方案二。
- 优化方案二
借助pod
- 终极方案
创建一个Pods库的模版库:pod lib create AYBase
此时打开测试工程并没有我们的Pods资源库代码,如下图。怎么搞过来?
通过pod install获取我们的Pods资源库,如下图:
二、远程私有库
本地私有库缺点:
- 需要指明path。因为宿主工程里的Podfile文件指明了私有库路径,一旦宿主工程修位置发生变化,有可能安装本地私有库失败。
- 版本升级不好维护。如果本地私有库有两个版本0.1.0和0.2.0。我想安装0.1.0怎么安装?没法安装,因为本地私有库没有tag。
- 没办法多人合作开发。因为你这个库放在本地,其他人用不了。
创建远程私有库:
远程表示我的队友也可以去下载,私有代表只有我的队友可以下载,别人下载不了。
- 借助平台coding.net
创建私有索引库 AYSpecs
创建本地索引库 pod repo add AYBase url
创建远程私有库(存放框架源码)
- 创建一个pod私有库的模版库 AYBase
pod lib create AYBase
核心代码拖入Classes文件夹中
pod install 安装测试
编写描述文件、本地验证spec
- 上传本地库代码到远程仓库
- git add .
- git commit -m "xxx"
- git remote add origin url (关联本地库和远程库,注意选择ssh?还是https?)
git push origin master
- 上传标签
- git tag '0.0.1'(和描述文件的版本号保持一致)
- git push --tags
- 远程验证spec,pod spec lint
- 提交spec到本地索引库,会自动提交到远程索引库。
- pod repo push AYBase AYBase.podspec
pod seach AYBase
三、如何使用远端私有库
- source '官方路径'(远程索引库)
- source '私有索引库路径'(增加私隐索引库)
~到此为止,一个基本的远程私有库操作完毕。
总结:此时私有库名称、位置随便改,不会影响使用者。可以独立测试。
四、远程私有库的升级
- 修改私有库
- 基础设置
- Bases 、 Tools
- 升级私有库
提交代码本地、远程
修改描述文件的版本号
打标签、远程验证spec
提交本地索引库 pod repo push AYBase AYSpec.podspec
- 测试升级后的私有库:
// pod install(以前会更新本地索引库、现在不会了)
pod update --no-repo-update(会更新)
五、远程私有库依赖问题
基础库依赖于其他库,安装后跑不起来,怎么解决?
六、远程私有库设计优化
引入问题:我只需要一个base库,还要安装整个库吗?
举例:AYBase里面有Category、Tools等等(后期会更多),现在我仅仅只需要Category里面的功能,我安装AYBase,会不会太大了?
解决方案:
把一个大的基础组件划分为几个子库?
之后的操作:
- 提升s.version版本号
- 提交代码
- 打标签
- 推送spec到本地索引库。
未完待续,敬请期待
脚注
生成一个脚注[1].
-
这里是 脚注 的 内容. ↩