如何让 Staging analytics/data 脱离 App Store 部署的生产环境
How to keep Staging analytics/data out of Production for App Store deployment
一旦将构建提交给 Apple Store/TestFlight 或 Google Play,就无法更改该特定构建。
我认为这意味着必须提交生产版本,为生产环境配置。
但是,同一个构建如何能够指向暂存环境(用于 TestFlight 或 Google Play Alpha/Beta 测试)?然后在升级到 App Store 之前重新配置为指向 Production?
如何在单个构建中同时支持暂存和生产环境?
例如,对于不应将登台指标投入生产的分析,或者 Q/A 其数据应驻留在登台数据库中的用户。
有不同的方法来处理这个问题。这部分取决于您的需求。例如,如果您希望能够指向生产构建阶段。
一种简单的方法是使用 Debug
和 Release
配置作为将两者分开的方法。换句话说,使用 Debug 配置构建的构建将指向阶段,使用 Release
构建的构建指向 prod.
如果你愿意,你当然可以把它弄出来。例如,您可以让 Debug
构建实际可配置以更改环境。
这是通过编译时标志(例如 DEBUG)来控制的。所以你的代码应该是这样的:
#if DEBUG
// Do Staging environment setup here
#else
// Do Prod environment setup here
#endif
通过某些对象来限制代码中需要区分环境的位置可能会有所帮助。
请注意,这也是处理您可能用于分析等的第 3 方服务的常用方法,这些服务具有 QA/prod 的不同密钥。
一旦将构建提交给 Apple Store/TestFlight 或 Google Play,就无法更改该特定构建。
我认为这意味着必须提交生产版本,为生产环境配置。
但是,同一个构建如何能够指向暂存环境(用于 TestFlight 或 Google Play Alpha/Beta 测试)?然后在升级到 App Store 之前重新配置为指向 Production?
如何在单个构建中同时支持暂存和生产环境?
例如,对于不应将登台指标投入生产的分析,或者 Q/A 其数据应驻留在登台数据库中的用户。
有不同的方法来处理这个问题。这部分取决于您的需求。例如,如果您希望能够指向生产构建阶段。
一种简单的方法是使用 Debug
和 Release
配置作为将两者分开的方法。换句话说,使用 Debug 配置构建的构建将指向阶段,使用 Release
构建的构建指向 prod.
如果你愿意,你当然可以把它弄出来。例如,您可以让 Debug
构建实际可配置以更改环境。
这是通过编译时标志(例如 DEBUG)来控制的。所以你的代码应该是这样的:
#if DEBUG
// Do Staging environment setup here
#else
// Do Prod environment setup here
#endif
通过某些对象来限制代码中需要区分环境的位置可能会有所帮助。
请注意,这也是处理您可能用于分析等的第 3 方服务的常用方法,这些服务具有 QA/prod 的不同密钥。