我正在使用静态库和Xcode 4工作区来实现iOS开发中的模块化,这是越来越普遍的技术。例如,我可能有一个工作区,其中包含一个App项目和一个library项目,如so1:
那么你会有一个方案来构建这样的东西:
我想做的是使“应用程序构建”控制它启动的“库构建”,至少有几种方式:
>将App App配置(例如DeBUG,AdHoc)映射到任意库配置
通过-D的某个子集定义和/或为库构建指定这些子集。
我将在自己的部分处理这些中的每一个,但值得做一些澄清。
澄清
>我在这里使用App / library作为您可能拥有的任何超级项目/子项目关系的简单代理。
>从我所看到的,Xcode 3风格的嵌入式子项目在Xcode 4中似乎与工作区“对等体”不同。我很想错了。
>我知道我可以用“运行构建脚本”构建阶段和xcodebuild几乎可以做任何事情。但是我正在尝试在这里的系统中工作,其中依赖关系在方案中指定,否则有些松散耦合。
>图书馆不仅仅在这个项目中使用,所以你不能随意地加载这个应用程序的构建的垃圾,也可以引用App或Workspace特有的任何东西。对于一般情况,这将排除包括App项目中的静态.xcconfig作为将应用程序的构建信息传达到库的一种方式。
>在工作空间之外构建库,牺牲太多,而不是选项。
配置映射
据了解,构建特定的App配置将:
>如果库中存在相同名称的配置,那么它将使用它构建库。
>否则,将按照库的项目文件中指定的方式构建库的活动配置。
据我所知,不用诉诸于上述的运行构建脚本,这就是对子项目构建配置的控制程度。请告诉我不同
理想情况下,我可以指定(在方案中,大概):
AppConfigA -> libConfig1AppConfigB -> libConfig2
虽然DeBUG,AdHoc,&发布可能是一些曾经使用过的唯一配置,复杂的项目通常会超出这种情况。
定义
我还没有找到方法通过-D定义从应用程序构建到库,而不诉诸xcodebuild,这可以采取例如.xcconfig文件。
应用程序的构建设置可以在库构建运行构建脚本阶段中访问。然而,这样做在图书馆中引入了App项目的依赖关系,因为它有很好的理由是verboten(参见Clarifications)。但即使如此,我还没有找到一种方法来使用这些设置来直接控制图书馆的构建(much2)。
太疯狂了
我在写这个时想出的一个方案是:
>图书馆基于它自己的项目中的一个空(虚拟)libraryExternals.xcconfig文件构建配置。
>一个干净的库删除该文件。图书馆的独立构建将创建一个空的,如果它不存在。
>该文件被App Build运行构建脚本阶段所覆盖,并包含应用程序想要与库构建通信的任何内容。
似乎很复杂,但我现在正在寻找任何东西。如果没有什么更好的话,我会推送一个答案。
1个显示的应用程序是Max OS X.我发现命令行应用程序使得更简单的测试。同样适用
2 Cf. Info.pList预处理,我在这次调查中了解到。
解决方法 如果您修改项目结构以使用具有多个目标的单个项目,则每个目标的构建设置将自动从项目继承。从那里,您可以修改您想要不同的,或选择一个单独的设置,然后按删除键将其设置为项目指定的默认值。 总结以上是内存溢出为你收集整理的在Xcode 4工作区中,如何将构建设置和配置级联到子项目全部内容,希望文章能够帮你解决在Xcode 4工作区中,如何将构建设置和配置级联到子项目所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)