2

我正在尝试创建一种能够通过 Testflight 分发我的应用程序的 beta 版本而不覆盖生产版本的方法。我希望能够在代码中知道它是 beta 构建还是生产构建(即以某种方式定义 #if BETA_VERSION,类似于全局 DEBUG 变量),并且我希望能够区分它与跳板上单独的应用程序图标,以及不同的应用程序名称(即 MyApp Beta 或类似名称)。

我通过复制我的发布配置来设置一个 beta 配置,并且我已经有一个用于 AdHoc 构建的配置文件(过去六个月左右我一直在通过 Testflight 分发)。我知道要更改应用程序名称,我需要更改项目 plist 文件中的捆绑显示名称属性,但我不确定如何制作单独的“配置文件”来保存所有这些更改。

我已经尝试通读这篇文章,但无法让它工作,并且在阅读说明时无意中弄乱了我的所有配置文件。

我已经为此苦苦挣扎了几个星期。此过程的细节非常不透明,因此特别感谢任何详细的说明或指针。

先感谢您!

PS,我对 Xcode 中的目标、方案和配置之间的关系感到非常困惑,这可能无济于事。

4

1 回答 1

2

我在我的项目中使用了三种配置:Release、Beta 和 Debug,其中 Beta 是 Release 的副本。在这三种配置中的每一种中,我都在目标的构建设置中包含以下内容:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) CONFIGURATION_$(CONFIGURATION)

这将做的是为每个配置定义一个单独的预处理器宏。在您的代码中,您可以执行以下操作:

#if defined(CONFIGURATION_Beta)
    // Something that should only happen in Beta builds
#endif

您可以在“用户定义”类别(在 Xcode 中构建设置的底部)中为每个配置定义额外的构建设置,然后在您的Info.plist文件中引用它们。例如,您可以BUNDLE_ID为 Release、Beta 和 Debug 构建定义不同的自定义构建设置,然后将文件中的值设置CFBundleIdentifierInfo.plist${BUNDLE_ID}这将允许您在设备上并排安装 Release、Beta 和 Debug 构建。

更新:

如果您想查看如何设置所有这些的好示例,请查看Cheddar for iOS中的项目配置。

于 2014-05-21T04:27:42.303 回答