Android 如何将暂存分析/数据保留在应用商店部署的生产之外

Android 如何将暂存分析/数据保留在应用商店部署的生产之外,android,ios,deployment,configuration,testflight,Android,Ios,Deployment,Configuration,Testflight,一旦一个构建提交到Apple Store/TestFlight或Google Play,该特定构建就无法更改 我认为这意味着必须提交生产构建,并针对生产环境进行配置 但是,同样的构建如何能够指向一个暂存环境(用于TestFlight或Google Play Alpha/Beta测试)?然后在获得批准后,重新配置为在推广到应用商店之前进行生产 如何在单个构建中同时支持暂存和生产环境 例如,对于分析而言,暂存指标不应用于生产或Q/A用户,其数据应驻留在暂存数据库中。有不同的方法来处理此问题。这部分取

一旦一个构建提交到Apple Store/TestFlight或Google Play,该特定构建就无法更改

我认为这意味着必须提交生产构建,并针对生产环境进行配置

但是,同样的构建如何能够指向一个暂存环境(用于TestFlight或Google Play Alpha/Beta测试)?然后在获得批准后,重新配置为在推广到应用商店之前进行生产

如何在单个构建中同时支持暂存和生产环境


例如,对于分析而言,暂存指标不应用于生产或Q/A用户,其数据应驻留在暂存数据库中。

有不同的方法来处理此问题。这部分取决于你的需要。例如,如果您希望能够使用生产构建指向阶段

一种简单的方法是使用
Debug
Release
配置作为分离这两种配置的方法。换句话说,使用调试配置构建的版本将指向stage,使用
Release
构建的版本将指向prod

如果你愿意,你当然可以拉皮条。例如,您可以让
调试
构建实际上可以配置为更改环境

通过编译时标志(如DEBUG)对此进行控制。因此,您的代码类似于:

#if DEBUG
    // Do Staging environment setup here
#else
    // Do Prod environment setup here
#endif
通过一些对象来限制代码中需要区分不同环境的位置,这会很有帮助


注意:这也是处理第三方服务的一种常见方法,您可以使用第三方服务进行分析,这些第三方服务具有不同的QA/prod密钥。

有不同的方法来处理此问题。这部分取决于你的需要。例如,如果您希望能够使用生产构建指向阶段

一种简单的方法是使用
Debug
Release
配置作为分离这两种配置的方法。换句话说,使用调试配置构建的版本将指向stage,使用
Release
构建的版本将指向prod

如果你愿意,你当然可以拉皮条。例如,您可以让
调试
构建实际上可以配置为更改环境

通过编译时标志(如DEBUG)对此进行控制。因此,您的代码类似于:

#if DEBUG
    // Do Staging environment setup here
#else
    // Do Prod environment setup here
#endif
通过一些对象来限制代码中需要区分不同环境的位置,这会很有帮助


注意:这也是处理第三方服务的常用方法,您可以将其用于分析等,这些服务具有不同的QA/prod键。

谢谢您的建议。因此,这两个环境将通过宏标志硬编码到构建本身中。但这是否意味着在第一次构建并提交调试构建之后,我需要重建并重新提交发布构建?这取决于您的目标。这些是用于所有测试构建的吗?通常,您只提交应用商店提交的版本。您永远不应该提交调试以提交应用商店(用于销售)。如果您需要有一个可以同时完成这两项工作的测试构建,那么您需要实现一些选择系统的功能。总是在某个时候,您必须测试产品。为此,您必须向测试人员发布发布版本。由于您似乎不太熟悉这样做,我建议您尽可能保持简单/基本。对,最终版本必须是发行版。困惑在于如何提交调试版本并将其从登台升级到生产,而不创建新的发布版本。但我想你是说,必须为不打算发布的TestFlight创建特定的调试构建,如果QA确实针对为生产配置的发布构建进行最终测试,那么这是不可避免的(或者更简单、更可取)。我不会说必须为TF创建调试构建。它只是有助于更轻松地调试它。如果需要,您可以随时提交TF的发布版本。如果你想在苹果提交之前将版本发送给TF进行最后一次测试,这完全取决于你。很多时候,这不是一件坏事。最简单的方法是调试构建->TF,发布构建->应用商店。如果您想要更多的覆盖范围,请调试->TF,发布->TF(用于最终验证),发布->应用商店(一旦验证)。如果你想变得更复杂,你可以让Debug在STG和PROD之间切换。保持简单。从1开始。一旦感到舒适,就去2。也许3点以后吧。一旦你开始这样做,就更容易摸索了。谢谢你的建议。因此,这两个环境将通过宏标志硬编码到构建本身中。但这是否意味着在第一次构建并提交调试构建之后,我需要重建并重新提交发布构建?这取决于您的目标。这些是用于所有测试构建的吗?通常,您只提交应用商店提交的版本。您永远不应该提交调试以提交应用商店(用于销售)。如果您需要有一个可以同时完成这两项工作的测试构建,那么您需要实现一些选择系统的功能。总是在某个时候,您必须测试产品。为此,您必须向测试人员发布发布版本。由于您似乎不太熟悉这样做,我建议您尽可能保持简单/基本。对,最终版本必须是发行版。困惑在于如何提交调试版本并将其从登台升级到生产,而不创建新的发布版本。但我想你是说,必须为不打算发布的TestFlight创建特定的调试构建,如果QA确实针对为生产配置的发布构建进行最终测试,那么这是不可避免的(或者更简单、更可取)。我不会说必须为TF创建调试构建。它只是有助于更轻松地调试它。您始终可以提交发布