如何处理移动应用程序的多个环境?

Coc*_*lla 5 android mobile-application continuous-deployment ios devops

考虑一个适用于 Android 和 iOS 的企业移动应用程序,具有构建和发布管道。

我想要实现的是发布管道的推广模型,这样应用程序二进制文件只在构建管道中构建一次,然后通过发布管道通过环境提升到生产环境:

  1. 构建管道构建 IPA 和 APK 文件
  2. 构建成功后触发发布管道,并部署到测试环境
  3. QA 经理提升到QA环境,并将其推送给测试人员
  4. QA 经理升级到生产环境,并将其推送给最终用户
[ APK/IPA ]---->Test ---> QA ---> Production---->[ Same APK/IPA ]
Run Code Online (Sandbox Code Playgroud)

应用程序必须连接到后端 API 的相应测试、QA 和生产版本(例如,当应用程序处于测试阶段时,它应该连接到测试 API)——但是应用程序如何知道要连接到哪个版本?

现在,如果我正在创建一个 Web 应用程序,这很简单,可以使用环境变量来处理,因此 Web 应用程序知道它在哪个环境中运行——而不是移动应用程序。

我能想到的唯一方法是让应用程序连接到一种配置 API,发送它的版本号,以便后端“告诉”它属于哪个环境。但这似乎有点不灵活。

是否有某种方法可以将文件捆绑在 APK/IPA 文件中以使其知道它属于哪个环境?有什么方法可以处理这个问题?

tar*_*adi 1

我以前做过这个。我现在没有时间太深入。总体思路略有不同。我们阻止应用程序使用,直到通过后端 API 注册为止。我们使用序列号来定位设备,因此每个设备在注册过程中都会获得自己的环境。然后我们在两端使用持久性来根据序列号或唯一标识符来跟踪设备环境