17

我正在 XCode beta 中试用 Swift。特别是使用@IBDesignable 和@IBInspectable。我正在构建一个包含 (@IBDesignable) UIView 子类和简单 iOS 应用程序的框架,以便对其进行测试(都包含在工作区中并通过工作区链接)。几次成功构建后,我在框架构建输出中收到以下错误:

:0: 错误: /Users/richardpj/Projects/Swift2/Swift2FW/build/Swift2FW.build/Debug-iphonesimulator/Swift2FW.build/unextended-module.modulemap:2: 找不到伞头“Swift2FW.h”:0:错误:无法构建 Objective-C 模块“Swift2FW”

在您询问之前,我已经完成了清理并删除了我的派生数据,但除了删除和重新创建工作区和项目文件之外,似乎没有什么可以解决它。

关于错误来源的任何想法,如何复制(对于错误报告)或者我是愚蠢的。

编辑:自从这篇文章发布以来,我已经获得了 50 次浏览。听起来这是我应该报告的错误。关于如何做到这一点的任何想法?

4

8 回答 8

8

如果您在 Swift 中编写嵌入式框架,请检查您的项目设置 -> 框架目标名称 -> 构建阶段 -> 标题。当前(Xcode 6.2)此处公共部分中列出的任何头文件都可能导致此错误:

<unknown>:0: error: could not build Objective-C module 'YourFrameworkName'

于 2015-03-19T13:46:40.777 回答
8

在制作我自己的 swift 框架时,我收到错误“无法构建 Objective-C 模块”。

我通过转到“Link Binary With Libraries”并添加“UIKit”来修复它。

于 2014-12-13T14:03:29.513 回答
5

当 .h 伞形文件与我的一个 swift 文件同名时,我看到了这个错误。一旦我更改了框架构建的 swift 文件的名称。

Ex. Project Name: TestProject
|_
  TestProject.h <=
  |_
    Models
    |_
      TestProject.swift <= 

将带有箭头 ( <= ) 的两个文件命名相同会导致我出现“无法构建 Objective-C 模块”错误。

于 2014-06-09T14:38:44.570 回答
1

在我的例子中,我之前的构建设置覆盖了 Public Headers Folder Path (PUBLIC_HEADERS_FOLDER_PATH)$(CONTENTS_FOLDER_PATH)/Headers将其清除为(新?)修复错误的默认值。

于 2014-08-08T07:05:12.380 回答
1

在多次遇到这个问题并且有时诉诸于重新创建整个项目之后,我发现这个非常奇怪的构建问题通常是由您设置了断点引起的。

打开断点导航窗口 (CMD-7) 并删除所有断点。

这通常为我解决了这个问题,但听起来很奇怪。

当您单击边距以调查编译错误时,很容易意外添加断点。

于 2014-12-28T10:23:55.197 回答
1

就我而言,我所要做的就是打开嵌入式 Swift 框架目标的“编辑方案”窗口(产品 > 方案 > 编辑方案)并取消选中“共享”。我猜是因为还不支持非嵌入式 Swift 框架,所以共享框架方案意味着该模块必须有一个 Objective-C 组件。

您也可以在“管理方案”窗口(产品 > 方案 > 管理方案...)中取消选中此项。

于 2014-08-29T21:26:48.403 回答
0

我不知道这是否对其他人有帮助,但我在某些测试期间已将 ProjectName-Swift.h 文件导入到 ProjectName.h(伞形头文件)文件中,当我删除该导入时,错误消失了,我能够再次建造。

于 2014-06-13T06:10:22.940 回答
0

在我的情况下,这是因为我未能在我的其他目标的构建阶段将框架列为依赖项。一旦我这样做了,一切都很好。

我认为这是因为这确保了框架在使用它的目标之前构建。

这个问题断断续续的原因显然是,没有依赖关系,构建顺序是不确定的——所以有时它恰好是正确的顺序并且构建工作,有时它恰好是错误的顺序并且构建失败。

于 2016-01-29T21:41:34.003 回答