警告:模块中的Swift错误.调试器中将无法使用此模块的调试信息

Joh*_*y Z 12 xcode objective-c lldb swift3

我的swift + obj-c应用程序在我的控制台中没有调试值,我收到一条非常无用的消息,解释了为什么调试器不工作:"警告:模块XXX中的Swift错误.".XXX是我的模块的名称,而不是我包含的第三方.

我的应用程序在快速之前就已存在.我使用桥接头开始使用swift,我最近使用xcode工具将所有swift 2文件迁移到swift 3.(但我仍然有obj-c遗留在那里).我使用可可豆荚,这可能导致了这个问题.

没有调试器信息......

(lldb) po self warning: Swift error in module XXX. Debug info from this module will be unavailable in the debugger.

我尝试按照这篇文章的第二个答案和其他几个我发现建议同样的事情:删除重复的导入.

我尝试从我的swift项目中删除重复的导入.事实上,如果我跑find . -name "*swift" | xargs grep "import",我没有结果.所以我最终删除了所有swift文件中的所有导入(并注释掉代码以使其编译),看看我是否可以让我的调试器回来.

所以...

  • 还有另一个解决这个问题的方法吗?
  • 有没有办法得到更详细的错误信息?
  • 在我的桥接标题中有重复的标题是一个问题吗?例如,我的很多obj-c文件都导入了UIKit,我在桥接头中包含了一些这样的文件.

Des*_*uan 1

刚才我也遇到了这个问题。这是我的解决方案:

如果您通过Cocoapods导入第3个repo,并且该repo是由Objective-C编写的,则需要通过以下方式导入:

// System 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

// Directly add - Objective-C
#import "EaseUI.h"

// Cocoapods - Objcetive-C
@import MJRefresh;
Run Code Online (Sandbox Code Playgroud)

你可以参考Github中的这个问题和这个问题

  • 这不是一个完整的解决方案,因为它忽略了如果有问题的模块是用 Swift 编写的,如何解决问题。 (5认同)