在构建时(调试和发布)从单个代码库为每个客户端应用程序 (B2B) “注入”数据库名称(和其他值)的最简单方法?

Simplest approach to 'inject' database name (and other values) for each client app (B2B) at build time (debug and release) from single codebase?

提问人:AutoM8R 提问时间:11/16/2023 更新时间:11/17/2023 访问量:13

问:

我正在创建一个 B2B 应用程序,每个客户端都有自己的数据库名称,因为数据库从一个客户端到下一个客户端是分开的,为了安全起见,没有中央存储库。例如,公司 A 的数据库是“corpa”,公司 B 的数据库是“corpb”......公司 A 和公司 B 使用相同的应用程序库,它们只需要几个“配置”值,例如上面的数据库名称,这些值对于它们的设置是唯一的。

我从未发布过需要特定配置值的应用程序,有人可以推动我朝着最佳方向发展,以构建包含其特定配置值的这些应用程序(包括调试测试版本)的方法?我希望它,以便当我构建、调试或发布公司 A 的应用程序时,它包含配置值 key/pair of {'dbname':'corpa'}。

我在本地使用 Fastlane 进行 CD,但我不一定需要依赖 Fastlane(希望)来做到这一点。我想使用最简单的方法,并且不会混淆公司 A 和公司 B 之间的配置值。

非常感谢,如果你能提供一个简短的例子或文档来证明你是我的英雄!

tl;dr - 在构建调试或发布时,我需要将 dbname 作为键值对注入,例如 {'dbname':'corpa'} 表示公司 A 或 {'dbname':'corpb'} 表示公司 B。大约有 50 个不同的企业应用程序从相同的代码库构建,每个应用程序都需要特定的配置值,例如“dbname”。如何在本地完成这项工作?

Flutter 构建 环境变量 fastlane

评论


答:

0赞 AutoM8R 11/17/2023 #1

对于其他想要运行或构建环境变量的人来说,答案是利用以下示例:https://dartcode.org/docs/using-dart-define-in-flutter/dart-define