iOS应用程序的设置

iOS应用程序的设置,ios,swift,Ios,Swift,对于在Swift上编写的iOS应用程序,您可以推荐哪些存储设置(API端点、不同的键-用于Facebook、twitter等)?我需要一些东西来轻松地在环境之间切换—开发(本地iOS模拟器)、暂存(暂存服务器)和生产(用于AppStore)。我看到的解决方案之一是使用应用程序设置创建带有预定义常量的类设置。够好吗?或者你可以给我推荐一些“快捷方式” PS:如果你熟悉RubyonRails,我想看看FigaroGem()为每个环境创建一个包含键的plist,或者直接加载 为每个环境创建一个目标,并

对于在Swift上编写的iOS应用程序,您可以推荐哪些存储设置(API端点、不同的键-用于Facebook、twitter等)?我需要一些东西来轻松地在环境之间切换—开发(本地iOS模拟器)、暂存(暂存服务器)和生产(用于AppStore)。我看到的解决方案之一是使用应用程序设置创建带有预定义常量的类设置。够好吗?或者你可以给我推荐一些“快捷方式”


PS:如果你熟悉RubyonRails,我想看看FigaroGem()

为每个环境创建一个包含键的plist,或者直接加载

为每个环境创建一个目标,并根据需要在每个环境中添加构建标志/正确的plist

然后添加宏(在swift中仍然可用)

根据需要使用钥匙


更好的解决方案可能是从服务器获取密钥,该服务器张贴了生成设置中定义的环境标志“按目标添加/配置预处理器”(您要查找的密钥是预处理器宏(在Apple LLVM-Processing下))。通过将RELEASE=1附加到preprocess宏字段,可以设置编译时定义
RELEASE

我使用这种方法构建同一应用程序的lite和常规版本。我有一个目标和两个配置。然后在我的代码中有#ifdef语句来触发特定的特性,等等


这样做的好处是,您可以根据项目结构(目标与配置)的布局方式来定制每个目标或配置。

尝试使用
NSUserDefaults
classNSUserDefaults不适合这种情况,因为我需要存储应用程序配置,而不是用户设置
#if DEBUG
// set the debug keys here or load the plist
#else if RELEASE
// set the release keys here or load the plist
#else if STAGING
// load the staging keys or load the plist
#endif