Swift在为这个模块构建ast上下文时遇到了致命的错误

Foo*_*ook 45 xcode swift

我在Xcode 7 beta(7A120f)中将我的项目升级到Swift 2并在lldb提示符下尝试po self时出现此错误:

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

Swift在构造此模块的ast上下文时遇到致命错误:无法为"UIKit"加载底层模块调试器中将无法使用此模块中的调试信息.

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

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

我能够创建一个新项目并在其中查看调试输出,因此这可能与我的项目如何通过xcode迁移有关.

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

编辑: ast是'抽象语法树'.仍然不知道如何解决它.

pha*_*lat 5

我的项目中遇到了同样的问题.尝试访问po对象时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>
        ^
Run Code Online (Sandbox Code Playgroud)

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

为什么Xcode 7将此视为致命错误超出了我(这只是6中的警告).在Xcode 6中,您可以通过CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES在应用程序目标中启用"允许非模块化包含在框架模块中"()构建设置来解决此类"非模块化头部包含" .

我没有运气获得Xcode 7测试版以兑现上述标志(rdar:// 22044453 < - 请重复).

我发现让调试器工作的唯一解决方案是删除Crashlytics pod.我评论了Crashlytics和Fabric pod,运行pod install,恢复调试,然后在发布之前重新安装pod.

我真的希望它在测试版发布之前已经在Xcode 7中修复了.


Foo*_*ook 1

为了解决这个问题,我手动将所有文件和设置迁移到新的 xcode 项目。其他的都没起作用。可能有更好的解决方案,但我无法再花时间寻找它。