30

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

在此处输入图像描述

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

4

7 回答 7

38

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

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

或相对于项目目录:

$(PROJECT_DIR)/path-to-framework-parent-directory

另一个可能的原因是框架的路径中包含一个空格。我发现无论您是尝试用反斜杠转义它../Project\ Name/frameworks还是用双引号将整个路径都用完,都没有关系"../Project Name/frameworks"。结果将是 SourceKit 无法加载该模块。

请注意,这$(PROJECT_DIR)可能会扩展到其中包含空格的路径,并且也会导致相同的错误。所以它看起来像是 Xcode/SourceKit 中的一个错误(我尝试了最新的 Xcode 7.2-beta3 并且错误仍然存​​在)。

我的存储库在第二个硬盘上/Voluems/Macintosh HD/Repos。我刚刚将硬盘重命名为HD,所以路径看起来像/Volumes/HD/Repos并且问题消失了。

于 2015-11-12T09:15:24.480 回答
1

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

于 2016-02-05T20:15:12.253 回答
1

我也遇到了这个问题,其他解决方案都不起作用。我终于在我的情况下弄清楚了:

目标名称中也不能有空格

要重命名它:

  • 转到您的项目设置
  • 展开左侧的目标列表列(如果还没有)
  • 单击相关目标一次(或在选择它时按EnterTab)并输入新名称(不带空格)
于 2016-07-28T12:47:42.530 回答
1

奇怪的是,只需将我的文件夹名称从“开发人员”更改为“开发”即可解决我的问题。

于 2016-12-04T04:08:45.917 回答
1

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

为了让事情正常工作,我必须明确地直接添加一个路径,直接指向相关框架的直接父目录(而不是只拥有一个到具有“递归”选项集的更高目录之一的路径)。

HTH

于 2016-06-09T14:03:00.997 回答
0

在我的例子中,我已经为我的 SDK 和 podspec 创建了一个框架,用于制作可可豆荚。

我在使用我的 SDK 时遇到了同样的问题,当我将 Foundation API 导入到我正在使用我的 SDK 的文件时它已修复

import Foundation

于 2019-10-15T13:21:20.937 回答
0

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

导入我从未为模拟器构建的框架后,仅适用于真实设备。Swift 模块没有出现,同样的错误。然后我为模拟器构建,它突然工作了,我可以看到 Swift 模块。

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

注意:一旦我选择了模拟器并构建它,它就会一直工作,无论构建目标是什么。

于 2019-12-17T18:38:37.123 回答