Pod组件发布效能提升计划
1. 创建组件
1. MAC APP上提供“创建组件”的按钮
2. 打开创建组件页,输入组件名、前缀,自动脚本pob lib create调用创建一个组件,同时调用脚本分别在内部git source仓库、内部git framework仓库、外部github framework仓库创建对应仓库,分别创建develop分支,提交组件初始代码到git source仓库,只提交一个Readme到git framework,github framework仓库。
3. 自动设置git忽略文件,从模板复制,忽略Pods文件夹、build文件夹等。
4. framework的Readme中自动带入framework安装教程。
2. 组件开发
1. 本地开发时要通过本地路径的方式在podfile中引用对应仓库源码进行开发,减少不必要的发布流程。
2. 一个功能模块的各组件都开发完自测通过后在执行组件发布流程。
3. 组件发布
1. 由于组件发布是本地已经自测完了,不涉及需要发布源码后先去调试的过程,所以这个时间点组件发布应该算是一个稳定版本。
2. 由于是稳定版本所以建议同步发源码和framework。
3. MAC APP上点击发布组件,自动走源码和framework的发布流程(此为默认,用户可选择单独发源码或framework,但是要文案提醒开发者,单独发布可能引起的源码和framework不一致问题,建议一起发布),framework本地生成后,发布到git framework。发布组件时用户可选是否将framework同步到github,如果选择了,发布完后自动走github framework同步流程。
4. 发布组件可支持Podfile对应本地路径的组件进行依赖发布,但是需要用户指定所有需要一起发布的组件,最好可以自动读取Podfile中所有本地路径依赖的组件显示到发布页,并且可以复选框勾选。添加的顺序为组件发布顺序,可按照依赖关系来安排组件发布顺序。
5. framework本地生成时要放到./build文件夹,跟git忽略文件夹名称相匹配。
6. 发布时根据源码的podspec自动生成framework的debug和release的podspec,提交到git的framework仓库。
4. 同步到github
1. 当用户在组件发布时没有选择自动同步逻辑且当前git上的版本在github上没有时可以走“同步到github”逻辑。
2. 当组件发布时选择了自动同步逻辑或git版本在github上已经有了相同版本(证明已经同步过了),则点击此按钮提示开发者已经同步过了。
5. 安装
1. 有三个source,分别代表git source仓库、git framework仓库、github framework仓库。
2. 其中framework会带有Debug和Release的配置。
3. source和framework切换页面
1. MAC APP中可以选择source选项(单选)
2. 当source选项为framework时,可选择Debug和Release(多选)
3. 选择完后点击“安装”按钮将自动在Podfile中添加对应source,移除另外两个source
4. “安装”也会自动修改pod方法的参数,如果有的话,没有自动以podspec的为准
1. 如果是源码则类似于pod 'ModuleName'
2. 如果是framework debug 则类似于pod 'ModuleName-Debug', :configurations => 'Debug'
3. 如果是framework release 则类似于pod 'ModuleName', :configurations => 'Release'
4. 如果framework debug和release都选择了则两个都有。
5. 最后,“安装”会执行pod install命令。pod install报错时执行pod update。
6. 关于组件的大小问题
1. 为了组件的可维护性高,建议只要单一功能的组件都要新创建组件,而不是两个功能的组件放到一个组件中。
2. 多个组件如果有关联,通过组件依赖的方式去完成,登录UI组件通过依赖邮箱登录组件、Facebook登录组件、Apple登录组件等去实现上层UI封装及功能聚合。
7. 关于权限
1. 一种是只有三个权限,source group、git framework group、github framework group。
2. 一种是组件细分,master可选择给谁开source和framework的权限,还是只有framework的权限,理论上核心研发iOS开发都开源码权限,方便调试,如果非iOS的人员或其他部门的人员只开framework权限
3. 在MAC APP上可选择源码权限还是framework权限,选择后同步调用gitlab和github授权相应权限。没授权的pod install拉代码拉不下来,保证了权限。
网友评论