iOS,从代码中检测特设

当我正在debugging或进行临时部署时,我想为我的iPhone应用程序使用不同的APIurl。 有没有什么办法来检测代码(如果adhoc)使用此Url而不是默认的?

有两种方法我可以想到:

1)条件汇编

由于您必须“归档”产品才能分配特别版本,因此您可以为归档设置一个新的configuration并利用预处理器。

2.)基于Release / Debug / AdHoc的替代默认.settings文件。

与上面相同的build议,但使用.settings文件,而不是编译。 就个人而言,我build议通过条件编译,因为如果您想在不重新部署的情况下testing其他环境,可以在部署后更改(并保存)。

编辑

Conditional Compilation refers to using "ifdef" blocks right? I tried this once but couldn't get it to check for AD-HOC, only DEBUG seemed to work

正确。

没有默认定义的“ADHOC”macros。 但是你可以轻松地添加一个。

下面介绍如何使用ADHOC构build的新预处理器macros设置附加configuration:

第一步:build立一个新的configuration(可选…你可能只是使用释放…由你决定)。

设置一个新的配置

步骤2:为该configuration添加预处理器macros。 在我的截图中,它只显示debugging和发布,因为我实际上并没有添加一个新的configuration。 如果您添加了一个新的configuration(并称之为“AdHoc”,它也应该显示在这里:

在这里输入图像说明

像debuggingconfiguration的DEBUG=1macros一样添加ADHOC=1

步骤3:修改您当前的Scheme,或者复制它,这样“存档”步骤将使用您的新configuration:

在这里输入图像说明