我正在开发一种产品,该产品将部署到许多不同的组织(理想场景,几十个)。系统的每次部署(由 iOS 和 Android 的原生应用程序组成)将涉及以下内容:
- 特定于组织的品牌(即新皮肤)
- 与组织的身份验证系统和用户数据库集成
- 一些自定义功能取决于组织的需求
换句话说,核心功能在所有部署中都将保持不变,但每个实例看起来会有所不同,会连接到不同的身份验证系统,并启用/禁用某些功能。
我的问题:管理我们的 2 个移动代码库(iOS 和 Android)以最大限度地减少重复并简化部署过程的最佳策略是什么?
我们正在讨论的三个解决方案是:
创建一个跨所有实例共享的核心库(作为子项目/库项目或 git 子模块),并在顶部添加一个带有品牌和任何配置细节的薄层。
维护一个具有核心功能的 Git 分支,并为每个包含附加代码的部署创建一个新分支。
做一些完全不同的事情,stackoverflow 上一些更聪明的人建议。
你觉得哪个听起来最好?提前感谢您的任何反馈!!