【问题标题】:Supporting different environments through TestFlight通过TestFlight支持不同的环境
【发布时间】:2020-06-12 00:48:26
【问题描述】:

也许这个问题是重复的,但我找不到答案。

我的公司想要实现 3 种不同的环境:

  • Staging:在 Xcode 中开发时使用
  • UAT:在我们将构建推送到内部和外部的 TestFlight 时使用。
  • Prod:当应用在 App Store 上时使用。

据我所知:

#if DEBUG

在 TestFlight 中构建时不会执行。

有没有办法知道什么时候是 TestFlight 或 AppStore 构建?

谢谢

【问题讨论】:

    标签: swift testflight


    【解决方案1】:

    更新:曾经有一种方法可以区分 Appstore 和 testflight 版本,但苹果似乎已经取消了对它的支持,并且不再有效。因此,到目前为止,我们无法区分 Appstore 和 testflight 安装。

    这是以前使用的方法:

    let isTestflight = Bundle.main.appStoreReceiptURL?.path.contains("sandboxReceipt")
    

    您可以使用相同的语法来检查它是使用 RELEASE 关键字是 Testflight 还是 Appstore:

    #if RELEASE
    print("RELEASE")
    #elseif DEBUG
    print("DEBUG")
    #endif
    

    【讨论】:

    • 那么,你是说#if RELEASE 只能在AppStore 中调用吗?但是#If DEBUG 只在 Xcode 中?通过使用第一个,我们是否处于中间阶段?
    • 中间阶段是什么意思?对于调试,您可以使用DEBUG 并设置调试配置,对于RELEASE,您可以设置发布配置,这就是这里的目的。
    • 但我想区分是TestFlight还是AppStore
    • 曾经有一种方法,但它不再有效。所以只能区分debug和release(包括appstore和testflight)。
    • 你记得变量的名字吗?
    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2013-09-21
    • 2020-12-08
    相关资源
    最近更新 更多