Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 间歇性Swift框架编译器错误_Ios_Swift_Xcode6 - Fatal编程技术网

Ios 间歇性Swift框架编译器错误

Ios 间歇性Swift框架编译器错误,ios,swift,xcode6,Ios,Swift,Xcode6,我正在XCode测试版中试用Swift。特别是使用@IBDesignable和@IBInspectable。我正在构建一个框架,其中包含(@IBDesignable)UIView子类和一个简单的iOS应用程序,以便对其进行测试(包含在工作区中并通过工作区链接)。在几次成功构建之后,我在框架构建输出中遇到以下错误: :0:错误:/Users/richardpj/Projects/Swift2FW/build/Swift2FW.build/Debug iphonesimulator/Swift2FW

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

:0:错误:/Users/richardpj/Projects/Swift2FW/build/Swift2FW.build/Debug iphonesimulator/Swift2FW.build/unexpand模块映射:2:未找到伞头“Swift2FW.h” :0:错误:无法生成Objective-C模块“Swift2FW”

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

关于错误的来源、如何复制(用于错误报告)或我是否愚蠢的想法


编辑:自从这篇文章发布以来,我已经获得了50个视图。听起来这是一个我应该报告的错误。有什么办法吗?

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

Ex. Project Name: TestProject
|_
  TestProject.h <=
  |_
    Models
    |_
      TestProject.swift <= 
Ex.项目名称:TestProject
|_

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

在我的例子中,我以前的构建设置覆盖了Public Headers文件夹路径
(Public\u Headers\u Folder\u Path)
。将其清除为
$(CONTENTS\u FOLDER\u PATH)/Headers的(new?)默认值修复了错误。

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


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

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


我通过“将二进制文件链接到库”并添加“UIKit”来修复此问题。

在多次遇到此问题后,有时需要重新创建整个项目,我发现此非常奇怪的构建问题通常是由设置断点引起的

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

这通常可以解决我的这个问题,不管它听起来多么奇怪


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

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


:0:错误:无法生成Objective-C模块“YourFrameworkName”

在我的情况下,这是因为我未能在其他目标的生成阶段将框架列为依赖项。我一做到这一点,一切都很好

我认为这是因为这样可以确保在使用框架的目标之前构建框架


这个问题之所以是间歇性的,显然是因为在没有依赖关系的情况下,构建的顺序是不确定的——因此有时它恰好是正确的顺序,构建工作正常,而其他时候它恰好是错误的顺序,构建失败。

您是否尝试清理项目,重置模拟器,然后关闭/打开Xcode?有时候会有帮助。是的,我试过所有这些东西,还有更多。看起来项目文件不知怎么被破坏了。到目前为止,以相同的方式重新创建它是唯一对我有效的修复方法。你可以报告错误,我的文件不是以这种方式命名的。然而,自动生成的测试目标是无效的。我会看一看,然后告诉你。感谢您的反馈。创建了一个新的解决方案,其中包含不同于伞头文件名的文件。删除了测试目标及其文件以确保安全。仍然有同样的问题。在几次构建之后,它给出了相同的错误:(我的理性思维认为这可能是巧合,但在我删除框架项目中的一个异常断点后,我还可以构建使用框架的项目。但是它在一段时间后消失了(?)所以这可能是巧合。