差异化实施前端架构方案
--- 接入速度快、质量高、维护成本低
一、为什么需要差异化实施方案?
一个项目多家客户使用,代码70%-90%相同,如何快速接入?
二、一个项目多个客户,需要解决这三类差异
1、资源/配置差异
- 安装图标、启动页、主题色、客户相关提示语和图片
- app包名、app名称、签名文件、后台地址、加密公私钥
- 第三方相关项,例如百度定位key,Crash平台AppId等
2、流程差异
- 标准流程 a->b->c
- 小差异:流程 a->c、a->b
- 大差异:流程 a1->b1、a2->c2
3、页面差异
- 标准页面 a+b+c
- 小差异:页面 a+b、a+c
- 大差异:页面 a1+b1、a2+c2
如何解决这三类差异?
方案实施效果
- 开发新功能方便,不需要多次同步代码
- 节约开发和测试时间
- 项目结构清晰简单-保证高质量
- 客户差异项一目了然-维护成本低
- 打包方便,指定客户编译
- 包体没有变大,多家客户的差异化资源在编译时替换
三、Android架构方案
三种可选方案比较
差异化打包方案具体实现
***App,现要接入A、B两家客户
四、iOS架构方案
iOS 目前主流的差异化打包方案
1、多target打包
- 通过默认标准工程中复制一份target出来,target即为生成的ipa包的所有配置信息。
- 在标准工程外新建一个对应的文件夹,存放该target所有的差异文件。
- 修改target中具有差异化的部分,包含icon、启动页、支持系统版本、功能差异化代码文件、差异化资源文件等等。
- 通过选择target对应的scheme来生成ipa包。
2、重签名打包
- 通过企业证书先生成一个ipa包。该ipa包包含标准工程以及所有接入方的差异文件等。
- 通过命令修改ipa中的plist文件,plist文件即为ipa包中关于build的配置信息,主要是修改其中的证书、icon以及对应的接入方code等信息。
- 使用新的plist文件以及证书重新对ipa包进行签名,生成新的ipa包。
- 程序里会根据接入方code读取该code下对应的所有差异化配置信息。