Swift在构build这个模块的ast上下文时有致命的错误

我在Xcode 7 beta(7A120f)中将项目升级到了Swift 2,并在lldb提示符下尝试自我时发生此错误:

警告:模块myApp中的Swift错误:

Swift在构build这个模块的ast上下文时有致命的错误:无法为“UIKit”加载底层模块debugging器中的debugging信息将不可用。

然后,我留下了一个残缺的debugging器(没有价值)。 无论我在哪里放置断点,都会发生这种情况。 我试过了:

  • 清除派生的数据
  • 产品>清洁
  • 重新启动xcode
  • 重新启动mac

我可以创build一个新的项目,并在其中看到debugging输出,所以这可能与我的项目如何被xcode迁移有关。

什么是上下文,我该如何纠正?

编辑: ast是“抽象语法树”。 仍然不知道如何解决这个问题。

我在我的项目中遇到同样的问题。 当试图对象时,lldb吐出的错误突出了这个问题:

 (lldb)po fileURL warning: Swift error in module <APP_NAME>: Swift had fatal errors constructing the ast context for this module: <module-includes>:1:9: note: in file included from <module-includes>:1: #import "Headers/Crashlytics.h" ^ <APP_PATH>/Pods/Crashlytics/Crashlytics.framework/Headers/Crashlytics.h:10:9: error: include of non-modular header inside framework module 'Crashlytics' #import <Fabric/FABAttributes.h> ^ 

Crashlytics.h伞头导入了Fabric/FABAttributes.h ,它不是Crashlytics模块的一部分(即不在其module.modulemap )。 这是使用CocoaPods安装的Crashlytics 3.1.0。

为什么Xcode 7将此视为一个致命的错误是超越我(这只是在6的警告)。 在Xcode 6中,可以通过在应用程序目标中启用“允许非模块化包含在框架模块中”( CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES )构build设置来解决这种“非模块化头包含”的问题。

我没有运气得到Xcode 7 betas荣誉上述国旗( rdar:// 22044453 < – 请dup)。

我发现debugging器工作的唯一解决scheme是删除Crashlytics窗格。 我将Crashlytics和Fabric pod install注释掉,运行pod install ,恢复debugging,然后在发布之前重新安装pod install

我真的希望Xcode 7在Beta版发布之前就已经解决了这个问题。

为了解决这个问题,我手动将我所有的文件和设置迁移到一个新的xcode项目。 没有别的工作。 有可能是一个更好的解决办法,但我不能再花更多的时间来寻找它。

检查你的桥头,如果你有

@import Crashlytics;

(或任何其他导致错误的框架,在我的情况下是GoogleMobileAds

尝试更换

#import <Crashlytics/Crashlytics.h>

我遇到过同样的问题。 在大多数情况下,当您在Swift项目中使用objective-c框架或库时,会出现这个问题。

这个问题是通过仅在Bridging-Header中导入objective-c框架或库来解决的。

 #import <SampleFramework/SampleFramework.h> 

并从Swift文件中删除这个框架的所有import

 import SampleFramework // <-- Remove it 

然后清理并build立。

确保你已经为你的项目中的所有Objective-C框架或库完成了这个过程。

希望这可以帮助!

我有同样的问题,试图search,并在这个线程来到这里,但没有上述解决scheme的工作

我不知道如何,但重新启动Xcode解决了我的问题。