首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法调试嵌入在Objective应用程序中的Swift模块/框架

无法调试嵌入在Objective应用程序中的Swift模块/框架
EN

Stack Overflow用户
提问于 2016-09-13 10:22:12
回答 11查看 19.9K关注 0票数 32

替代标题(协助搜索)

  • 无法调试与Xcode 8中的Objective应用程序链接的Swift 2.3框架
  • error in auto-import: failed to get module 'XYZ' from AST context Xcode 8
  • Xcode 8无法调试Swift框架
  • warning: Swift error in module <XYZ>
  • 解决办法;Xcode调试器不能调试仅用Objective编写的应用程序,但只能通过Swift编写的框架进行链接。(28312362)

我有一个用Objective编写的应用程序,它链接到一些用Swift 2.x编写的模块(框架)。

问题

一切(调试等)在xcode7中工作很好,但是当迁移到xcode8并更新模块以使用swift2.3时,我无法调试这些模块。

LLDB报告了以下错误:

代码语言:javascript
复制
warning: Swift error in module XYZ.
Debug info from this module will be unavailable in the debugger.

error: in auto-import:
failed to get module 'ABC' from AST context

如果我将模块链接到在Swift 2.3中构建的应用程序,则不会发生这种情况。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2016-09-13 10:22:12

tl:dr

在“生成设置”下为应用程序目标添加一个用户定义设置。

SWIFT_VERSION = 2.3

更多信息

我不确定这是Xcode 8的错误,还是苹果的政策(试图迫使开发人员使用SWIFT3.0?)但是..。默认情况下,Xcode 8安装标准Swift运行库的SWIFT3.0版本。

在使用LLDM进行调试时,SWIFT2.3模块无法加载(在SWIFT3.0运行时中)。

迫使该应用程序使用SWIFT2.3(或者苹果称为传统Swift )解决了这个问题。

Swift应用程序通过Xcode公开了这个设置,但是您必须为Objective应用程序手动添加它。

进一步咨询意见

尽快将您的SWIFT2.3代码移植到SWIFT3.0,苹果将不会支持2.x很长时间。

票数 6
EN

Stack Overflow用户

发布于 2017-01-26 15:02:37

对我来说,这就像痛苦和费时一样简单:

import SDWebImage 是问题,因为其中一个框架已经将SDWebImage打包在其中(而我看不见),而该框架恰好是Objective,应用程序是Swift。我还将SDWebImage添加到项目中,因为我在编写的类中使用了它,这是Xcode调试器无法处理的混乱的原因。因此,基本上,确保您没有任何重复的任何方式,我会检查常见的东西,例如SDWebImage。

票数 19
EN

Stack Overflow用户

发布于 2017-08-20 15:24:25

使用fr v代替po进行调试。

有关调试https://www.codeproject.com/Articles/1181358/Debugging-with-Xcode的更多信息

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39467654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档