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

Tom*_*ren 7 iphone environment

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

如果你经常在两台服务器之间切换,这对于屁股来说有点痛苦.此外,我可能会意外地释放仍使用本地URL的应用程序!

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

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

vfn*_*vfn 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__
Run Code Online (Sandbox Code Playgroud)

干杯,
VFN


Ada*_*Woś 2

在您的头文件之一(例如预编译头文件)中,使用 URL 定义宏。看一下这篇文章并使用类似的方法。

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