【问题标题】:Objective-C – Having a TestFlight configuration to include TestFlight SDKObjective-C – 具有包含 TestFlight SDK 的 TestFlight 配置
【发布时间】:2011-11-06 12:39:50
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c testing configuration target testflight


    【解决方案1】:

    您可以很容易地使用#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 分发创建的配置之外的其他配置。

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

    【讨论】:

    • 但是TestFlight SDK是否会通过其他配置从发布版本中排除?
    • 如果不调用,其他配置下不会执行。但 SDK 代码仍将保留在二进制文件中,如果您不从应用商店配置中排除文件,请参阅:stackoverflow.com/questions/2270202/…
    • 我建议接受这个答案。我按照此处和链接中的步骤操作,并在blog post 中写下了详细信息。
    【解决方案2】:

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

    【讨论】:

    • 注意:您最好复制调试配置,因为它的构建速度更快。发布配置为多个架构构建(如果已配置)可执行文件。
    • TestFlight 团队建议 (support.testflightapp.com/kb/tutorials/…) 复制发布配置的任何特殊原因?
    • 经过一番研究,我认为我的笔记是错误的。改为发布。对不起。
    【解决方案3】:

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

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

    它比听起来简单。

    【讨论】:

    • 如何让两个分支保持同步?您在主分支上更新了一些内容,然后将更新后的代码复制到 TestFlight 分支?
    • 我只是重新调整更改。因为 rebase 会跟踪删除,所以我通常有一个 master 分支,它是开发的地方,然后发布版本进入它自己的分支,在那里我已经剥离了我不想要的代码。然后我只是将生产分支重新设置为 master。我有一个例子(虽然没有 Testflight,但你会明白的)here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多