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

Xcode Couldn't Generate Swift Representation for my own framework

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

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

根据我的经验,这个问题有两个可能的原因。 第一个是你的框架找不到。要解决此问题,您需要转到目标的 Build Settings 并向 Framework Search Paths 添加一个绝对路径:

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

或相对于项目目录:

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

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

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

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

运行 Product->Clean,Product->Build 对我有用。

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

为了让事情正常进行,我必须明确地添加一个直接指向有问题的框架的直接父目录的路径(而不是只使用 'recursive' 选项集指向其更高层目录之一的路径).

HTH

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

目标名称也不能包含 space

重命名:

  • 转到您的项目设置
  • 如果左侧没有目标列表列,请展开
  • 单击相关目标一次(或在选中时按 EnterTab)并输入新名称,不带space

奇怪的是,将我的文件夹的名称从 'Developer' 更改为 'Development' 解决了我的问题。

就我而言,我已经为我的 SDK 创建了一个框架以及 podspec 以使其成为 cocoa pod。

我在使用我的 SDK 时遇到了同样的问题,当我将 Foundation API 导入我正在使用我的 SDK

的文件时它得到了修复

import Foundation

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

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

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

注意:一旦我选择并构建了模拟器,无论构建目的地如何,它都会一直运行。