我是
Xcode的新手.
我花了两天时间试图弄清楚如何在我的iPhone上测试我的应用程序来访问网络服务.在模拟器上,我可以使用硬编码的“localhost”变量,但我不想硬编码所有配置设置.
我正在使用Swift Xcode 6,但我认为这与Xcode 5的过程相同.
我查看了很多文章,我认为我应该使用.xcconfig,但它很不清楚.
例如,我创建了一个Environment.xcconfig文件.我填充它
API_BASE_URL = "http://localhost:4000/api/v1"
然后我进入了项目 – >信息并将Debug配置文件设置为Environment.
然后我尝试通过${API_BASE_URL}访问代码中的变量,但我得到了使用未解析的标识符’API_BASE_URL’.
这非常令人沮丧.有任何想法吗?
解决方法
>如果您有pods配置,请设置配置层次结构:
>将每个键添加到生成器:
>然后只需使用代码中的键:
或者,如果您根本没有任何pod,Configurations层次结构将如下所示:
>为每个配置文件创建所有键值对(在这种情况下,dev / adhoc / appstore构建有3个配置文件).每个配置文件都有相同的密钥集:
>将每个键添加到生成器:
>然后只需使用代码中的键:
PS:以这种方式生成的密钥在.swift文件中也是可识别的(确保你的Swift项目中有一个桥接头,即使你没有使用obj-c源,它也是空的).
Swift 2.2的更新:不再适用Swift 2.2: GCC_PREPROCESSOR_DEFINITIONS constants no longer imported