Xcode 5 链接到同一项目中的框架时出现问题

标签 xcode macos cocoa frameworks

我遇到了一个框架链接问题,几天来都无法解决。

这就是我正在做的事情:

  1. 在 Xcode 5.0.2 中,我创建了一个新的 Framework 项目。我删除了随项目创建的默认目标、与它们关联的文件以及相关方案(因为我想创建自己的方案)。

  2. 我创建一个新的框架目标,给它一些名称,比如“Test1”,删除默认的 header 和实现文件,并向其中添加一个新协议(protocol)。我构建它,只是为了检查,一切都很顺利。

  3. 我创建另一个框架目标,给它另一个名称,比如“Test2”,删除默认头文件和实现文件,并向其中添加一个新类。

  4. 从 Test2 build设置中,我链接到 Test1。我尝试构建但它失败了:

    ld: framework not found Test1
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

如果我不包含 Test1 框架,它会按预期成功构建(框架不包含在任何文件中,仅包含在build设置中)。

尝试过清理和重建、手动删除文件、从设置中删除框架、库和头路径、重新启动 Xcode(甚至计算机)以及其他一些我不记得的东西,但无济于事。还尝试了其他 SO 答案的一些建议,但仍然没有运气。

如果有人知道发生了什么,我将不胜感激。

谢谢。

编辑:Here is a link to an archive with a test project created to demonstrate the above problem.此后,我也将“Target 1”框架添加到了 Target 2 的依赖项中。

最佳答案

您需要将目标 2 设置为目标 1 作为依赖项。为此,请打开 Target 2“构建阶段” Pane 。旋转打开“目标依赖项”。单击“+”按钮添加依赖项,当工作表出现时,选择“目标 1”。

完成此操作后,每次构建目标 2 时,都会确保目标 1 已构建并位于正确的链接位置。

关于Xcode 5 链接到同一项目中的框架时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20217635/

相关文章:

ios - 如何阻止 Xcode 在 iphoneos 构建目录中查找 OS X 产品?

objective-c - "Invalid Provisioning Profile... [Missing code-signing certificate.]"用于 OS X Mavericks 中全新的 Vanilla Mac App

c# - Xamarin.Mac/Cocoa 相当于 Window Loaded 事件?

objective-c - 检测全局关键事件

xcode - 过剩和界面生成器

ios - UITableView 的 QuickDialog 和 NSFetchedResultsController

c - 使用 pthread 函数的 strtol 上的段错误

macos - 已安装 libtool 但未找到 libtoolize

java - 在 Xcode 4 中编译 Java

objective-c - "strong"关键字有什么作用