我已按照 TestFlight 的说明复制“发布”配置。此外,我正在使用 TestFlight SDK 从我的应用程序中获取实时报告。通过这样做,我必须在我的应用程序中包含一些 TestFlight 代码。当然,我不想在我的应用程序的发布版本中包含此代码。
有没有办法只将此代码包含在 testflight 配置(重复的发布配置)中?您可以使用与#ifdef DEBUG
调试配置相同的方式(或者我是否必须为此创建一个单独的目标并且只在该目标中包含 TestFlight SDK?)
我已按照 TestFlight 的说明复制“发布”配置。此外,我正在使用 TestFlight SDK 从我的应用程序中获取实时报告。通过这样做,我必须在我的应用程序中包含一些 TestFlight 代码。当然,我不想在我的应用程序的发布版本中包含此代码。
有没有办法只将此代码包含在 testflight 配置(重复的发布配置)中?您可以使用与#ifdef DEBUG
调试配置相同的方式(或者我是否必须为此创建一个单独的目标并且只在该目标中包含 TestFlight SDK?)
您可以很容易地从运行#ifdef
语句中排除代码,正如我们在此处为我们的 HockeyApp 服务建议的那样:http: //support.hockeyapp.net/kb/client-integration/crash-reporting-on-ios-quincykit
基本上是:
为所有配置添加一个预处理器宏到你的 Xcode 项目:CONFIGURATION_$(CONFIGURATION)
然后,您将能够使用这些代码行仅包含特定配置的代码:
#if defined (CONFIGURATION_Beta)
// YOUR CODE
#endif
这替换Beta
为您的配置名称,该名称应仅包含代码
上面的链接提供了有关如何操作的图像和更详细的文本。由于您将仅在您的 beta 分发配置中使用该库,因此除了已经为 beta 分发创建的配置之外,您不需要创建另一个配置。
您需要有一种用于调试的配置,用于开发,一种用于测试版分发以设置即席权利,另一种用于应用商店分发。最后两个通常是发布配置的变体。
我认为您必须创建一个单独的构建配置并使用类似#ifdef TESTFLIGHT
. 您应该为该配置添加一个宏,以便仅为 TestFlight 配置定义它。
我对此的解决方案是在 Git 中为 Testflight 版本创建一个单独的分支,其中包括 SDK 和代码、标头等中的调用。
然后,我在主分支上完成所有工作,并通过这些更改使 Testflight 分支保持最新。这样我就不必在我的发布版本中包含我不使用的库或标题。
它比听起来简单。