【发布时间】:2011-07-28 21:36:46
【问题描述】:
我想使用 Xcode 4 和 Cocoa Touch 静态库项目管理工作区中的项目,这些项目包含我可以从其他项目中引用的共享代码。根据 WWDC 2010 视频和 Xcode 4 文档,Xcode 4 中的工作空间有一个“隐式依赖”功能。我一直在努力让它工作,但我没有取得太大的成功。
示例工作区:DependenciesInXcode4.zip
您可以看到非常基本的示例项目有 2 个静态库项目,我将它们命名为 Library1 和 Library2。然后,我在每个项目中都有一个类,我从 iPhone 项目中引用它,称为 PrimaryApp。添加导入语句但构建失败时,我得到了 Code Sense 的支持。
您可以看到构建是如何失败的,因为它找不到依赖项。
为了解决这些问题,我添加了手动链接 Library1 和 Library2 项目。
我还必须将这些项目的路径添加为标题搜索路径。
现在,当我构建两个依赖库然后在 iPhone 模拟器中运行 PrimaryApp 时,它会成功构建并运行。我发现它并不总是确保在必要时构建依赖项项目,这显然是一个手动过程。这不是我认为的“隐式依赖”,因为 Xcode 视频和文档暗示它应该可以工作。我一直在寻找更具体的例子,但到目前为止我还没有运气。即使在 Stackoverflow 上,我也没有看到令人满意的答案。
- How should I manage dependencies across projects in an Xcode workspace?
- What's the correct way to configure XCode 4 workspaces to build dependencies when needed?
似乎开发人员正在回退到旧技术,并没有真正使用新的“隐式依赖”功能。
如果能帮助我了解如何在 Xcode 4 中使用“隐式依赖项”来处理工作区,我将不胜感激。
这是我的问题:
- “隐式依赖项”应该如何在 Xcode 4 中与工作区一起工作?
- 为什么在PrimaryApp中找不到Libary1和Library2中的代码?
- 是否需要进行其他更改才能使依赖项在工作区中正常工作?
【问题讨论】:
-
更多关于隐式依赖的讨论和困惑也可以在 Apple 开发者论坛上找到。 devforums.apple.com/message/379275#379275
-
我已经提交了一份错误报告,要求提供更多文档来阐明如何使用隐式依赖项并使用方案来管理构建过程中的项目依赖项。请为它投票,以便它得到更多关注。 bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/2/wo/…
-
提示:如果隐式依赖项正在运行,但它们突然无缘无故停止工作,请尝试关闭并重新打开您的 Xcode 项目。 (我只是在这个 Xcode 错误上浪费了一个小时......)