【问题标题】:How to keep Staging analytics/data out of Production for App Store deployment如何将暂存分析/数据保留在 App Store 部署的生产环境之外
【发布时间】:2016-09-25 20:03:32
【问题描述】:

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

我认为这意味着必须提交生产版本,并为生产环境进行配置。

但是,相同的构建如何能够指向暂存环境(用于 TestFlight 或 Google Play Alpha/Beta 测试)?然后在获得批准时重新配置为指向生产,然后再推广到 App Store?

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

一个示例是用于分析,其中暂存指标不应用于生产或 Q/A 用户,其数据应驻留在暂存数据库中。

【问题讨论】:

    标签: android ios deployment configuration testflight


    【解决方案1】:

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

    一种简单的方法是使用DebugRelease 配置作为将两者分开的方法。换句话说,使用 Debug 配置构建的构建将指向 stage,而使用 Release 构建的构建将指向 prod。

    如果你愿意,你当然可以把它拉出来。例如,您可以让您的 Debug 构建实际上可配置为更改环境。

    对此的控制是通过诸如调试之类的编译时标志来完成的。所以你的代码会是这样的:

    #if DEBUG
        // Do Staging environment setup here
    #else
        // Do Prod environment setup here
    #endif
    

    通过一些对象来限制代码中需要区分环境的位置会很有帮助。

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

    【讨论】:

    • 感谢您的建议。因此,这两个环境将使用宏标志硬编码到构建本身中。但这是否意味着我需要在首次构建并提交 DEBUG 构建后重新构建并重新提交 RELEASE 构建?
    • 这取决于你的目标。这些适用于所有测试版本吗?通常,您只为您的应用商店提交提交 Release。您永远不应该提交调试以供 App Store 提交(以进行销售)。如果您需要能够在那里建立一个可以同时完成这两个任务的测试,那么您需要实现一些选择系统。总是在某些时候你将不得不测试 prod。为此,您必须向测试人员发布发布版本。由于您似乎不太熟悉这样做,因此我建议您尽可能保持简单/基本。
    • 对,最终的构建必须是 RELEASE。困惑是如何提交 DEBUG 构建并将其从 Staging 升级到 Production 而无需创建新的 RELEASE 构建。但我猜你是说必须为不用于 RELEASE 的 TestFlight 创建特定的 DEBUG 构建,并且如果 QA 确实针对为生产配置的 RELEASE 构建进行最终测试,这是不可避免的(或者只是更简单和可取的)。跨度>
    • 我不会说必须为 TF 创建调试版本。这有助于更轻松地调试它。如果您愿意,您可以随时为 TF 提交发布版本。如果您想在 Apple 提交之前将 Release 发送到 TF 进行最后一次测试,这完全取决于您。很多时候,这并不是一件坏事。最简单的是Debug build -> TF,Release build -> App Store。如果你想要更多的覆盖范围 Debug -> TF,Release -> TF(用于最终验证),Release -> App Store(一旦验证)。如果你想更复杂,你可以让 Debug 能够在 STG 和 PROD 之间切换。
    • 保持简单。从 1 开始。一旦舒服了,就去 2。也许稍后再去 3。一旦你开始这样做,就会更容易理解。
    猜你喜欢
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2020-07-18
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多