Xcode无法从嵌入式框架

时间:2015-08-10 16:10:23

标签: xcode

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

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

在Xcode 6和Xcode 7 beta 5中都尝试过。这是一个OS X目标,如果这会产生影响。

3 个答案:

答案 0 :(得分:0)

我的标头搜索路径错了。正确的做法并没有帮助,但是进入框架搜索路径的正确途径。去图。

答案 1 :(得分:0)

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

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

C0re是一个自定义框架,其中内置了多年的macOS开发知识(自1984年以来)。我想从中心位置将其用于我的所有项目:~/Development/Projects/Frameworks Library/ enter image description here~/Development/Projects/Frameworks Library/中,我有: enter image description here

在我要使用框架的项目中,我拥有:enter image description here

它找不到导入/包含: enter image description here 然后,我:

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

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

enter image description here

注意:将%20代替空格不起作用(尝试咧开嘴笑

注意:(另一个相关的Xcode缺陷 ... Xcode变量更新...) 如果您使用的是用户定义的变量或Custom PathsLocations下的Preferences,则需要对在System Framework Search Paths中创建的条目进行一些虚假编辑,以触发Xcode进入重新评估您在路径中使用的系统变量。否则,您可以整天更改Xcode系统变量,并且Xcode查找标头的能力不变。 而且,如果您的路途真的像我的路途漫长,那么您可能永远不会看到这条路没有改变...

要想踢个烂腿,如果您将Derived Data文件夹命名为空格(与DerivedData相比),并尝试直接进入它们以进行框架构建……是的, '将gitcha。

答案 2 :(得分:-1)

尝试删除并重新添加框架