【问题标题】:Xcode can’t find headers from an embedded frameworkXcode 无法从嵌入式框架中找到标头
【发布时间】:2015-08-10 16:10:22
【问题描述】:

我通过 Carthage 安装了两个框架,位于 ${PROJECT_DIR}/Carthage/Build/(默认 Carthage 路径)。在我的应用程序的目标中,我已将两个框架都拖到了文档中所述的 Embedded Binaries 部分。现在无论我做什么,Xcode 都会抱怨它无法从这两个框架中找到头文件。我尝试过的:

  • 标题在那里,我可以在 Xcode 树视图和 Finder 中单击它们。
  • 在框架的 Xcode 项目中,标头在 Build PhasesHeaders 下列为 Public。
  • 标题搜索路径 设置为 ${PROJECT_DIR}/Carthage/Build/** 没有帮助。 (WTF?)
  • 进行干净的构建并删除所有派生数据没有帮助。

在 Xcode 6 和 Xcode 7 beta 5 中都试过了。这是一个 OS X 目标,如果这有所作为的话。

【问题讨论】:

    标签: xcode


    【解决方案1】:

    我的 标题搜索路径 错误。把它弄好并没有帮助,但是输入正确的路径到Framework Search Paths 确实有帮助。去图吧。

    【讨论】:

    • 您能否准确分享您在路径中放置的内容? (我迷失了路径后缀的正确格式)。谢谢。
    【解决方案2】:

    尝试删除并重新添加框架

    【讨论】:

    • 谢谢!我尝试了几次,甚至确保在 Xcode 项目文件中没有提及它们,然后读取,问题再次出现。
    【解决方案3】:

    由于 Xcode 缺陷,它无法容纳目录名称中包含空格的搜索路径。这会导致 Xcode 无法在搜索路径的末尾找到框架包含。

    示例:#import <C0re/C0re.h>

    C0re 是一个自定义框架,内置了多年的 macOS 开发知识(自 1984 年以来)。我想在我所有项目的中心位置使用它:~/Development/Projects/Frameworks Library/ ~/Development/Projects/Frameworks Library/ 里面我有:

    在项目中我想使用我拥有的框架:

    它无法找到导入/包含: 然后我:

    1. 从项目中删除了框架(只是删除了引用而不是框架本身)
    2. 从框架路径中的文件夹名称中删除了空格(又名Frameworks LibraryFrameWorksLibrary
    3. 再次将框架添加到项目中
    4. 更改了Build Settings 下的System Frameworks Search Paths 以删除空格(对我来说是FrameWorksLibrary

    并且没有编辑任何源代码... 错误消失了:

    注意:(另一个相关的 Xcode 缺陷...Xcode 变量更新...) 如果您在Preferences 中使用用户定义的变量或Locations 下的Custom Paths,您将需要对您在System Framework Search Paths 中所做的条目执行一些虚假编辑以触发Xcode 重新评估系统变量(s ) 你在你的路径中使用。否则,您可以整天更改 Xcode 系统变量,而 Xcode 查找标头的能力不会发生变化。 如果你的路真的和我的一样长,你可能永远看不到路没有改变……

    如果你用空格命名你的Derived Data 文件夹(而不是DerivedData)并尝试直接进入它们以构建框架......是的,它会 gitcha。

    【讨论】:

    • 您一定想知道为什么在添加框架时,Xcode 不能自动将该框架添加到搜索路径中? 90 年代的 IDE 可以做的事情......
    • 用 \ 转义路径中的空格,例如~/开发/项目/框架\库/。同样对于 使用标题搜索路径而不是系统标题搜索路径。
    • 我使用拖放功能让 Xcode 将路径放入其中。当 Xcode 接受拖动时,它应该已经逃脱了。
    • 当你拖入一个路径时,它会将它放在引号中,这样就不需要转义了,所以我不确定你的问题是什么。
    猜你喜欢
    • 2015-08-26
    • 2017-02-25
    • 1970-01-01
    • 2014-11-11
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多