Xcode无法为我自己的框架生成Swift表示

时间:2015-10-01 18:59:20

标签: xcode7 sourcekit

我已经创建了一个框架,我想在我的OS X应用程序中使用它。自从El Capitan更新到Xcode 7后,当我尝试命令单击import语句时,Xcode进入以下视图。

enter image description here

如何让Xcode正确显示Swift表示? 我之前已经发生过,我的解决方案是重新创建我不想再做的每个项目文件。

7 个答案:

答案 0 :(得分:36)

根据我的经验,这个问题有两个可能的原因。 第一个是您的框架无法找到。要解决此问题,您需要定位构建设置并添加框架搜索路径的路径绝对:

plt.pcolormesh(X,Y,Z.T)

或相对于项目目录:

/Users/{user}/path-to-framework-parent-directory

另一个可能的原因是框架的路径中包含一个空格。我发现你是否试图用反斜杠$(PROJECT_DIR)/path-to-framework-parent-directory 来逃避它或者用双引号../Project\ Name/frameworks取整个路径并不重要。结果是SourceKit无法加载模块。

请注意,"../Project Name/frameworks"可能会扩展到包含空格的路径,但也会导致相同的错误。所以它看起来像Xcode / SourceKit中的一个错误(我尝试了最新的Xcode 7.2-beta3,但仍然存在错误)。

我的存储库位于第二个硬盘$(PROJECT_DIR)上。我刚刚将硬盘重命名为/Voluems/Macintosh HD/Repos,因此路径看起来像HD,问题就消失了。

答案 1 :(得分:1)

运行产品 - >清洁,产品 - >构建对我有用。

答案 2 :(得分:1)

Max S.回答指出了我正确的方向,但是我在框架路径中使用了'递归'选项。

为了让事情发挥作用,我必须明确地直接添加一个路径来直接讨论这个框架的直接父命令(因为选择设置了'recursive'选项的路径指向一个更高的目录)。

HTH

答案 3 :(得分:1)

我也有这个问题,其他解决方案也没有用。我终于在我的案例中弄明白了:

目标名称中不能包含空格

重命名:

  • 转到您的项目设置
  • 展开左侧的目标列表列(如果尚未存在)
  • 点击相关目标一次(或选择 Enter Tab )并输入没有空格的新名称

答案 4 :(得分:0)

奇怪的是,只需更改我的文件夹名称即可开发人员'发展'解决了我的问题。

答案 5 :(得分:0)

就我而言,我为SDK和podspec创建了一个框架,以使其可可。

使用SDK时我遇到了同样的问题,当我将Foundation API导入到我使用SDK的文件中时,该问题已解决

import Foundation

答案 6 :(得分:0)

这是另一种可能的解决方案-对我有用的解决方案:

导入框架之后,我再也没有为模拟器构建过的框架,仅为真实设备构建了。 Swift模块未显示,同样的错误。然后,我为Simulator进行了构建,然后突然起作用,我可以看到Swift模块。

原因是,当我创建框架时,我有一个步骤将swift模块从iphonesimulator构建复制到通用构建,但对iphoneos构建中的模块则不执行任何操作。所以我的猜测是这就是为什么它不起作用。

注意:选择模拟器并进行构建后,无论构建目标在哪里,它都会一直正常工作。