【问题标题】:how do I reference a separate project in xcode 4?如何在 xcode 4 中引用单独的项目?
【发布时间】:2011-07-19 08:51:29
【问题描述】:

如何引用另一个具有我希望在 XCode 4 中利用的代码的项目。特别是我正在尝试使用来自 here 的 NSDate 扩展。

一些注意事项:

  • 我假设我应该参考而不是尝试构建框架
  • 我尝试将现有的“Hello World”xcode 项目文件复制到我的项目中,但这似乎不起作用
  • 是否需要基于“coco touch 静态库”选项创建新的“目标”?
  • 然后我需要编辑当前的产品方案,以便在我构建新目标时构建
  • 我需要在我的项目方面做些什么——添加文件并选择扩展 Xcode 项目文件就足够了吗?

谢谢

【问题讨论】:

    标签: iphone objective-c xcode xcode4 project-reference


    【解决方案1】:

    没有理由引入实际项目。您可以自己引入源文件,甚至可以使用完全相同的文件而不是根据需要复制它们。但是,如果您有多个文件,并且您认为不会对代码进行太多更改,那么创建静态库可能是最佳选择。

    【讨论】:

    • @dreway - 谢谢 - 作为 XCode 的新手,这是否意味着在扩展项目中创建静态库作为新目标,然后构建,并在某处获取某种形式的库文件(或框架?)我手动复制到我的项目? (即快照)
    • 是的,您需要使用“Cocoa Touch 静态库”模板在扩展项目中创建一个新目标。这将在您的“产品”文件夹中创建一个扩展名为“.a”的新文件。然后您应该将“.a”文件和所有“.h”文件带入您的项目。如果您想在代码中使用特定类,则只需导入适当的标头即可。
    【解决方案2】:

    我假设我应该参考而不是尝试构建框架

    是的,参考和链接它,除非你只需要一点。在这个阶段,分离你想要的位可能是一个高级主题(取决于 lib 的布局/也取决于)。您应该更喜欢引用和链接,因为它通常会最大限度地减少您的维护时间,特别是如果您在多个项目中使用它。

    我尝试将现有的“Hello World”xcode 项目文件复制到我的项目中,但这似乎不起作用

    您无需创建项目,而是将库的 xcode 项目添加到您的应用或库中,将库设置为依赖项,如果需要,将库添加到您的搜索路径,然后与库链接。

    是否需要基于“coco touch static library”选项新建一个“Target”?

    没有

    然后我需要编辑当前的产品方案,以便在我构建新目标时构建

    没有。您将其配置为依赖项。如果存在重大冲突,您可能需要更改 lib 的构建设置,链接器或编译器会指出这一点。

    我需要在我的项目方面做些什么 - 添加文件,并选择扩展 Xcode 项目文件就足够了吗?

    从上述过程开始。

    【讨论】:

    • @Justin - 谢谢 - 我不太清楚你在 Xcode 中的确切含义是“你将库的 xcode 项目添加到你的应用程序或库中,将库设置为依赖项,将库添加到如果需要,您的搜索路径,然后链接到库” - 我现在将在 xcode 中查看,看看它是否对我来说很突出如何做这些事情
    • @Greg 尝试一下,询问谷歌,阅读,当你遇到困难时询问细节
    • @Justin - 在看到 stackoverflow.com/questions/5373192/… doh 之后更进一步 - 现在我至少可以在 Target/BuildPhases/TargetDependencies 中看到库并将其添加到此处。当我有一个“#import“NSDate-Utilities.h””时,它仍然无法识别这个文件。也许在此之前应该有一些前缀?还是我需要在 Target/BuildPhases 的其他 3 个部分中填充项目?
    • 要解决此问题,请使用构建设置 HEADER_SEARCH_PATHS 将编译器无法找到的文件的父目录添加到您的搜索路径中。此路径可以是相对的、绝对的或源树(源树是半高级选项)。用法说明:HEADER_SEARCH_PATHS = ../LibName/ $(inherited) 您使用 $(inherited),因此您不会覆盖现有的搜索路径。 Xcode 也为此提供了一个 gui。如果您使用 gui,则指定 2 个条目:../LibName/$(inherited)。您可以使用 2 个星号指定要递归搜索的条目:../LibName/**
    • 通过添加到项目 => Header Search Paths => "../3rdpartylibrary/** /**" 确实得到了导入消失旁边的编译错误。在这之后如何(巧合?)我经常遇到 XCode 4 崩溃:(这里有错误codepaste.net/y4kysh。认为这可能是我所做的标题搜索路径更改?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2011-07-15
    • 2019-11-27
    相关资源
    最近更新 更多