使用的Xcode 7.2(7C68),OS X 10.11.2(15C50)Xcode的构建配置在工作区多个项目
TL;博士有了相同的Xcode工作区多个项目,为什么我的用户定义的构建构建配置的设置似乎不起作用?我在方案中正确设置了它们,但是在模拟器上运行时,值是正确的;当在设备上运行时,这些值是错误的。
你好。我正在尝试利用Xcode构建配置(.xcconfig文件)根据环境自定义我们的应用程序的行为。这样我们就可以根据方案的构建配置自动在集成和生产URL之间切换。但是,我很难让它正常工作。我认为我的工作区布局可能会受到责难。这里是布局/结构:
- 的Xcode工作区
- iOS应用项目(2个目标:应用程序,测试)
- 可可触摸框架项目(2个目标:框架,测试)
现在
,我有以下.xcconfig文件这些项目的每一个:
Debug.xcconfig
Testing.xcconfig
Release.xcconfig
此外,下面的方案(映射一到一个为每个项目及其各自的配置):
- 调试
- 测试
- 发布
对于框架,这些文件包含的信息,我们想自定义基于调试或测试或释放(例如URL,API令牌/密钥等)。现在,应用程序和框架都有自己的这些文件的副本。这是因为Xcode在处理依赖关系或多个项目时,会隐式地尝试在此场景中使用同名的配置。我想这个问题的一部分是我不知道如何明确地告诉Xcode使用X配置的依赖关系,不是正在设置的配置。
换句话说,我该如何告诉这两个应用程序使用X配置和框架来使用Y配置?
现在,当我运行模拟器中的应用程序时,我知道该方案使用了正确的info.plist值,因为URL和日志设置显示正确。但是,当我在设备上归档或运行时,会使用错误的构建配置。我不知道为什么会发生这种情况。
的屏幕截图和代码说明是如何工作的,现在:
图3(一些方法的分体):
if let infoDict = NSBundle(identifier: Constants.uniformTypeIdentifier)?.infoDictionary,
let apiKey = infoDict[Configuration.SerializationKeys.pusherAPIKey] as? String {
return apiKey
}
在框架内部,用户定义的构建设置包含需要为调试vs发布而更改的设置与vs无论如何(图。 1)。 Info.plist文件理想地提取给定方案的变量值(图2)。然后在代码中,我从信息plist中检索值(图3)。
任何设备在被告知时都会拒绝使用生产值,包括当我在我的方案的运行操作以及存档操作中手动切换时 - 存档使用会返回设备上的错误生成设置。
对不起,这是漫长的,感谢您的阅读。