3

我已按照 TestFlight 的说明复制“发布”配置。此外,我正在使用 TestFlight SDK 从我的应用程序中获取实时报告。通过这样做,我必须在我的应用程序中包含一些 TestFlight 代码。当然,我不想在我的应用程序的发布版本中包含此代码。

有没有办法只将此代码包含在 testflight 配置(重复的发布配置)中?您可以使用与#ifdef DEBUG调试配置相同的方式(或者我是否必须为此创建一个单独的目标并且只在该目标中包含 TestFlight SDK?)

4

3 回答 3

7

您可以很容易地从运行#ifdef语句中排除代码,正如我们在此处为我们的 HockeyApp 服务建议的那样:http: //support.hockeyapp.net/kb/client-integration/crash-reporting-on-ios-quincykit

基本上是:

  1. 为所有配置添加一个预处理器宏到你的 Xcode 项目:CONFIGURATION_$(CONFIGURATION)

  2. 然后,您将能够使用这些代码行仅包含特定配置的代码:

    #if defined (CONFIGURATION_Beta)
        // YOUR CODE
    #endif
    
  3. 这替换Beta为您的配置名称,该名称应仅包含代码

上面的链接提供了有关如何操作的图像和更详细的文本。由于您将仅在您的 beta 分发配置中使用该库,因此除了已经为 beta 分发创建的配置之外,您不需要创建另一个配置。

您需要有一种用于调试的配置,用于开发,一种用于测试版分发以设置即席权利,另一种用于应用商店分发。最后两个通常是发布配置的变体。

于 2011-11-07T10:28:12.750 回答
1

我认为您必须创建一个单独的构建配置并使用类似#ifdef TESTFLIGHT. 您应该为该配置添加一个宏,以便仅为 TestFlight 配置定义它。

于 2011-11-06T12:42:12.790 回答
1

我对此的解决方案是在 Git 中为 Testflight 版本创建一个单独的分支,其中包括 SDK 和代码、标头等中的调用。

然后,我在主分支上完成所有工作,并通过这些更改使 Testflight 分支保持最新。这样我就不必在我的发布版本中包含我不使用的库或标题。

它比听起来简单。

于 2011-11-06T12:46:44.530 回答