我的情况很简单,一个包含两个兄弟项目的工作区:一个主(iOS)应用程序和一个构建应用程序使用的几个静态库目标的项目.
这是我如何配置构建:
在清理(并删除派生数据)之后,构建会在构建主项目期间将此错误告诉我:
ld: library not found for -lChipmunk
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
果然,如果我查看新创建的派生数据,唯一找到的目标文件是主应用程序,而不是库.*.o文件的广泛"查找"并没有显示任何相关内容,因此库不会丢失,它们肯定不会被构建.
一些补充要点:
我刚刚想出了一个解决方法,即将所有deps的目标添加到主应用程序方案的"构建"部分.我之前尝试过这个但没有成功,但没有意识到我可以在列表中拖动目标以获得正确的构建顺序.现在,构建在正确的顺序中发生,无论是在干净之后,还是在库或主应用程序源更改之后.
我在这里留下问题,因为手动整理构建订单肯定不是必需的.如何设置东西会有问题.
我想使用Xcode 4和Cocoa Touch静态库项目管理工作区中的项目,这些项目包含我可以从其他项目引用的共享代码.根据WWDC 2010视频和Xcode 4文档,Xcode 4中的工作空间有一个"隐式依赖"功能.我一直试图让它工作,我没有取得多大成功.
示例工作区:DependenciesInXcode4.zip
您可以看到最基本的示例项目有2个静态库项目,我将其命名为Library1和Library2.然后我在每个项目中都有一个类,我从名为PrimaryApp的iPhone项目中引用它.在添加import语句时,我得到了Code Sense的支持,但构建失败了.

您可以看到构建失败的原因,因为它无法找到依赖项.

为解决这些问题,我手动链接了Library1和Library2项目.

我还必须将这些项目的路径添加为标题搜索路径.

现在,当我构建两个依赖库,然后在iPhone模拟器中运行PrimaryApp时,它会成功构建并运行.我发现它并不总是确保在必要时构建依赖项目,这显然是一个手动过程.这不是我认为的"隐式依赖",因为Xcode视频和文档暗示它应该工作.我一直在寻找更具体的例子,但到目前为止我没有运气.即使在Stackoverflow上,我还没有看到令人满意的答案.
看起来开发人员正在回归旧技术而不是真正使用新的"隐式依赖"功能.
我非常感谢帮助理解如何在Xcode 4中使用"隐式依赖"来处理工作空间.
这是我的问题:
Xcode有时会自动找到依赖项.当我是那个定义关系的人,当我变得懒惰时,我认为是可以的......
但更多的时候我发现自己面临着一个存在(中等到大尺寸)项目的目标.由于该项目是由其他人制作的,我发现很难理解哪些目标取决于什么,因为并非所有关系都是明确的.
Xcode用于查找此类关系的规则是什么?(我希望我能理解逻辑,所以在我的脑海中运行它并且可能在将来节省一些时间)或者是什么使目标有资格隐含地依赖于另一个?
目标及其创建的产品可能与另一个目标相关.如果目标需要另一个目标的输出以便构建,则说第一个目标依赖于第二个目标.如果两个目标都位于同一工作空间中,Xcode可以发现依赖关系,在这种情况下,它会按所需顺序构建产品.这种关系被称为隐式依赖.
我现在正在接受一个正在度假的同事的一些项目.
其他项目已经很好了,但在这个特别的项目中,我在项目中找到了一个项目,就像我猜想的那样使用框架.
那么这项技术的名称是什么?

如何插入并与之交互?刚进口?
我了解了Xcode工作区。我知道如何共享静态库,但是我想在工作区中的两个xcode项目之间共享文件,并且可以一次运行多个目标吗?能否向我提供如何执行此操作的信息。
提前致谢
我只是在学习 Objective-C,所以这将是一个非常基本的问题。我创建了一个 Mac OSX Cocoa 应用程序并将其添加到 XCode 4 中的工作区。
我还创建了一个名为“Module”的 Cocoa Framework 项目并将其添加到同一个工作区。默认情况下,XCode 为我创建了一个 Module.h 和 Module.m,我保持不变。
我看过很多关于如何通过进入构建阶段并单击“将二进制文件与库链接”部分中的 + 将框架添加到项目的文章。我已经这样做了,现在在我的主应用程序项目中看到一个工具箱,上面写着“Module.Framework”
所以现在我的下一个问题是 - 我如何#import 到我的主应用程序中?我尝试使用 " 和 < 进行各种组合,但所有尝试都报告为找不到文件。
帮助?:)
编辑:添加了一些屏幕截图


xcode ×4
ios ×3
iphone ×2
macos ×2
xcode4 ×2
build ×1
frameworks ×1
ios-targets ×1
ios4 ×1
objective-c ×1