iPhone - 在本地和生产环境设置之间切换

时间:2010-01-14 12:15:55

标签: iphone environment

我正在开发一个iPhone应用程序,它使用某个地方的服务器来获取其数据。在应用程序源代码的某处,我硬编码了用于连接的URL。这很好,除了我不总是想要使用生产服务器进行测试!我不想搞乱实时数据,只是为了在本地测试一些东西。所以我设置了同一台服务器的本地版本。但是为了使iPhone应用程序使用该服务器来更改源代码中的硬编码URL。

如果您经常在两台服务器之间切换,这会让您感到很痛苦。此外,我可能会意外地发布仍使用本地URL的应用程序!

我在想,也许XCode可以帮助我解决这个问题,因为它具有“Debug”和“Release”配置选项的概念。所以我的问题是:我能否以某种方式更改Debug配置,使其指向本地服务器URL?可能通过指向包含特定于环境的URL的属性或plist文件。然后,我可以创建此属性文件的两个版本,并使调试配置指向一个,同时使发布配置指向另一个。

有谁知道我怎么能做到这一点?

3 个答案:

答案 0 :(得分:5)

将此代码放在需要使用基于模式(调试/发布)=(开发/生产)的配置的位置。

放置它的最佳位置是“ProjectName”_Prefix.pch文件。

#ifndef __OPTIMIZE__ // __OPTIMIZE__ is not enabled, it means that the active config is Debug, so here you have to put your code for development mode

// For example
#define SERVER_URL @"http://my.test.server/something"

#else //__OPTIMIZE__ is defined, so put here your production code

// For example
#define SERVER_URL @"http://my.production.server/something"

#endif // __OPTIMIZE__

干杯,
VFN

答案 1 :(得分:2)

在您的一个头文件(例如预编译的头文件)中,使用URL定义宏。看看this article并使用类似的方法。

顺便说一句,我在我的所有应用程序中都使用了本文中的日志记录方法 - 它就像一个魅力,我强烈推荐它!

答案 2 :(得分:1)

您只需编辑gcc语言设置即可在xcode中定义前处理器宏:

转到“项目”菜单,然后选择“编辑项目设置”。转到“构建”选项卡。

转到标有“GCC 4.0 - 语言”的部分。有一个名为“Other C Flags”的设置。添加你想要的所有“-Dwhatever”宏。

相关问题