为beta发行版设置xcode配置/方案

时间:2014-05-21 02:39:28

标签: objective-c xcode ad-hoc-distribution buildconfiguration xcode-scheme

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

我通过复制我的发布配置来设置测试版配置,并且我已经拥有AdHoc版本的配置文件(我在过去六个月左右通过Testflight进行了分发)。我知道要更改应用名称,我需要在项目的plist文件中更改包显示名称属性,但我不确定如何制作单独的"个人资料"保持所有这些变化。

我已尝试通过this article阅读,但我无法让它工作,并且在执行说明时我无意中弄乱了所有配置文件。

我几周来一直在努力解决这个问题。这个过程的细节非常不透明,所以特别感谢任何详细的说明或指示。

提前谢谢!

PS我可能对Xcode中的目标,方案和配置之间的关系感到困惑并没有帮助。

1 个答案:

答案 0 :(得分: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文件中引用它们。例如,您可以为Release,Beta和Debug版本定义不同的自定义BUNDLE_ID构建设置,然后将CFBundleIdentifier文件中Info.plist的值设置为{ {1}},允许您在设备上并排安装Release,Beta和Debug版本。

<强>更新

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