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解决了我的问题。