XCode框架参考路径和构建输出目录

时间:2013-10-10 15:12:29

标签: ios xcode macos frameworks

我有一个工作区Application.xcworkspace,它构建了两个框架和一个使用这些框架的可执行文件。以下是它们的布局:

  • Framework_1 - 构建并输出到丑陋的DerivedData路径。

  • Framework_2 - 取决于Framework_1,它包含在项目的框架区域中,并在" Link Binary with Libraries"中指定。构建阶段,并输出到丑陋的DerivedData路径。

  • 应用程序 - 取决于Framework_1和Framework_2,它们包含在项目的框架区域中,并在" Link Binary with Libraries"中指定。构建阶段。输出目录又是丑陋的DerivedData路径。

我遇到的问题是项目文件中引用框架的路径是DerivedData丑陋的路径 - 它们就像../../Library/Developer/XCode/DerivedData/Application-longuglyuniquestring/Build/Products/释放/ Framework_1.framework。

如果我将源复制到另一个目录,或者将其检入版本控制并将其签出到另一台机器,则这些框架路径不再有效。他们重新生成。引用的框架在项目中显示为红色。

到目前为止,当我想在另一个文件夹中构建工作区时,解决问题的方法是:

  • 构建工作区 - Framework_1构建。
  • 转到"产品"该框架的节点并在Finder中显示。
  • 复制新的丑陋路径。
  • 打开Framework_2和Application的项目文件,并更正Framework_1和Framework_2的路径。
  • 所有红色物品都应该被解决,一切都应该建立。

这个过程很乏味,我很幸运,可以编辑项目文件。对于那些不了解我对项目文件知之甚少的同事来说,更糟糕的是,只是想检查代码并让它构建。

我是否需要对框架的构建输出目录做些什么?因为建议使用丑陋的路径,所以我一直在改变它。是否有一个复制文件选项,我可以使用它将这些框架放在相对于我的工作区的某个可预测的位置?

任何帮助将不胜感激。我确信我遗漏了一些简单的东西 - 从源代码控制中检出代码或复制到另一个目录的代码不会构建。

1 个答案:

答案 0 :(得分:2)

看起来有一种方法可以在每个工作区的基础上设置DerivedData目录 - Xcode 4 - build output directory

我只是将DerivedData设置为相对于我的工作区,然后相应地编辑项目文件。唯一的缺点是,如果我在另一个使用默认DerivedData路径的工作区中使用其中一个项目,我将不得不将其更改回来。

非常感谢用户DaGaMs - 他得到了一个upvote。

我仍然看到XCode 5的不良行为:我让我的机器上的项目工作。将其复制到另一个较低的目录并验证它仍然有效。退出XCode并将包含目录复制到网络驱动器,然后从那里复制到另一台Mac上。当我在另一台Mac上打开它时,就好像我从来没有做过一些改变。更糟糕的是,当我努力修复它时,XCode疯了,并增加了6个额外的' \'我的FRAMEWORK_SEARCH_PATHS路径的每一端都有字符!

部分问题源于我的应用程序中的子项目目录是绝对的而不是相对的。工作区顶部的项目是"相对于组",所以我将子项目更改为具有相同的属性。这似乎解决了这个问题,虽然由于某种原因,当我将所有文件复制到另一台机器时,派生数据重定向不适合它。