Objective c 在Xcode 5中将自定义框架正确嵌入到项目中

Objective c 在Xcode 5中将自定义框架正确嵌入到项目中,objective-c,xcode,macos,Objective C,Xcode,Macos,这里的Xcode 5让人非常沮丧。我所要做的就是将一些定制的Cocoa框架嵌入到我的项目中,并创建两个版本的应用程序,一个用于Mac应用程序商店,另一个用于定制在线商店(这样在为MAS构建时,会有一个名为Debug(MAS)的文件夹,以便我可以将其与其他版本区分开来) 我在项目中嵌入了三个框架(只有上帝知道为什么每次只有一个项目可以嵌入另一个框架,这个限制见鬼去吧),并在“用库链接二进制文件”和“复制框架”构建阶段添加了他们的产品。成品位于库中的默认位置 现在是这样的-每次我使用除“调试”和“发

这里的Xcode 5让人非常沮丧。我所要做的就是将一些定制的Cocoa框架嵌入到我的项目中,并创建两个版本的应用程序,一个用于Mac应用程序商店,另一个用于定制在线商店(这样在为MAS构建时,会有一个名为Debug(MAS)的文件夹,以便我可以将其与其他版本区分开来)

我在项目中嵌入了三个框架(只有上帝知道为什么每次只有一个项目可以嵌入另一个框架,这个限制见鬼去吧),并在“用库链接二进制文件”和“复制框架”构建阶段添加了他们的产品。成品位于库中的默认位置

现在是这样的-每次我使用除“调试”和“发布”之外的自定义构建配置文件时,框架不会复制到自定义构建文件夹中,而是进入“调试”和“发布”,而不管主应用程序的任何构建选项。此外,框架总是使用“调试”构建,并且不再连接到当前构建模式(测试、归档等)。长话短说,这是一个巨大的文件路径混乱,显然有很多关于自定义框架和自定义构建配置的bug


现在我的问题是——必须有一种正式的或有效的方式来维护一个Xcode项目,该项目分布在MAS和一个自定义在线商店(两个版本)上,并且至少嵌入了一个自定义框架。所有其他开发人员是如何解决这个问题的,我觉得我在做一些根本错误的事情,如果我做了,很抱歉把责任推到Xcode上,但有一点是肯定的:Xcode的外部组件路径管理非常混乱,导致邮件列表和论坛帖子不受限制……

答案是为MAS和非MAS应用程序创建单独的目标。您可以添加其他目标来构建自定义框架,并使不同的目标相互依赖(如有必要)。一旦完成所有设置(正确),则构建任何目标都将构建任何依赖目标(具有相同的构建标志)。好了,没有什么能阻止一个Xcode项目包含多个子项目,所以我不知道你为什么会这么认为。

一旦一个项目嵌入到另外两个Xcode项目中,一个项目试图同时打开,就会弹出一条消息说“无法打开XYZ.xcodeproject,因为它已经在另一个工作区中打开了”,这就是我所说的信息。关于框架和使用相同标志的构建-问题是:如果我为我的项目分配了一个名为“Release”或“Debug”以外的任何东西(例如MAS Release.xcconfig),那么所有嵌入式框架都不是在MAS Release中构建的,相反,它们总是进入默认的调试或发布文件夹。一旦它们进入,Xcode在使用前缀文件中的import导入框架时会给我留下一个错误,说“Literal or preprocessor issue”,抱怨找不到框架。这是另一个问题;必须将“用户标题搜索路径”设置为包含框架标题文件夹。(你应该使用#import“....”或@import framework(如果你打开了模块的话)。)我不会把它作为一个项目嵌入…我会把它作为一个目标并相应地设置依赖项。谢谢你的回复。所以你基本上是说,即使苹果在他们的文档中推荐,也不应该使用项目嵌入功能?真的!我已经厌倦了花无数个小时阅读“官方”苹果文档,结果却发现他们的建议是错误的。我是说…怎么了?!我正处于@Toby的位置。我想。有太多的“指令”和路径变量,我甚至不知道我在做什么了。顺便问一下,文档中没有一次提到“用户头搜索路径”。这些路径与Xcode 5中的“头搜索路径”或“框架搜索路径”有何不同?我做了一个框架。我假设我需要告诉Xcode我的框架路径,但这不对吗?