概述
我正在使用静态库和 Xcode 4 工作区来实现 iOS 开发中的模块化,这是一种越来越普遍的技术。例如,我可能有一个包含 App 项目和 Library 项目的工作区,例如 so1:
然后,您将有一个计划来构建这些看起来像这样的东西:
我想做的是让“App build”控制它启动的“Library build”,至少有两种方式:
我将在各自的部分中处理每一个,但值得做一些澄清。
澄清
配置映射
据我了解,构建特定的应用程序配置将:
据我所知,在不诉诸上述 run-build-script hack 的情况下,这就是人们对子项目构建配置的控制程度。请告诉我不同的。
理想情况下,我可以指定(大概在方案中):
AppConfigA -> LibConfig1
AppConfigB -> LibConfig2
虽然 Debug、AdHoc 和 Release 可能是某些人曾经使用的唯一配置,但复杂的项目通常会超出这些配置。定义
我还没有找到将 -D 定义从 App 构建传递到库的方法,而无需借助 xcodebuild,它可以采用例如 .xcconfig 文件。
可以在 Library build run-build-script 阶段访问应用程序的build设置。但是,这样做会在库中引入对 App 项目的依赖关系,这有充分的理由被禁止(参见 Clarifications)。但即便如此,我还没有找到一种方法来使用这些设置来直接控制库的构建(much2)。
太疯狂了,可能...
我在写这篇文章时想出的一个方案是:
LibraryExternals.xcconfig
文件在它自己的项目中。看起来有点复杂,但我现在正在寻找任何东西。如果没有更好的结果出现,我会提出这个答案。
1 显示的应用程序是 Max OS X。我发现命令行应用程序可以进行更简单的测试。同样适用。
2 参照。 Info.plist 预处理,这是我在这次调查中了解到的。
最佳答案
如果您修改项目结构以使用具有多个目标的单个项目,则每个目标的build设置将自动从项目继承。从那里,您可以修改您想要不同的设置,或者选择一个单独的设置并按删除键将其设置为项目指定的默认值。
关于xcode - 在 Xcode 4 工作区中,如何将build设置和配置级联到子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8509368/