rjs*_*ing 29 xcode lldb swift3 xcode8 swift2.3
替代标题(以帮助搜索)
- 无法调试链接到Xcode 8中的Objective-C应用程序的Swift 2.3框架
error in auto-import: failed to get module 'XYZ' from AST contextXcode 8- Xcode 8无法调试Swift框架
warning: Swift error in module <XYZ>- 解决方法; Xcode Debugger不能只调试用Objective-C编写的应用程序,而只能用针对用Swift编写的框架进行链接.(28312362)
我有一个用Objective-C编写的应用程序,它链接了一些用Swift 2.x编写的模块(框架).
一切(调试等)在xcode7中工作正常,但是当转移到xcode8并更新模块以使用swift2.3时,我无法调试模块.
LLDB报告了以下错误:
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
Run Code Online (Sandbox Code Playgroud)
如果我将模块链接到Swift 2.3内置的应用程序,则不会发生这种情况.
Tim*_*and 19
对我来说,它既简单又痛苦又耗时:
import SDWebImage 是问题,因为其中一个框架已经包含了SDWebImage(我无法看到它),而且该框架碰巧是Objective-C,而应用程序是Swift.我还将SDWebImage添加到项目中,因为我在我编写的类中使用它,并且创建了xCode调试器无法处理的混乱.所以基本上,确保你没有以任何方式复制任何东西,我会检查像SDWebImage这样的常见内容.
Sur*_*iya 11
使用fr v代替po进行调试
有关更多调试, 请访问https://www.codeproject.com/Articles/1181358/Debugging-with-Xcode
我在2017年WWDC上与一位名叫Sean的Apple工程师讨论了这个问题.
我的团队花了几周的时间试图解决这个问题,最终成了Apple编译器的一个错误,我们自己也想不到这个错误.此外,它有一个非常简单的解决方法.
编译标志从框架和项目聚合的方式恰好存在错误,"纯Objective-C"项目"激活"它.
解决方案:在Objective-C项目中添加一个单独的空Swift文件("Whatever.swift"或其他),使其不再是纯粹的Objective-c(new-> file-> Swift文件,不要创建桥接头.该文件只包含Foundation的导入.
就是这样.问题解决了.
在"构建设置"下为您的应用目标添加用户定义的设置.
SWIFT_VERSION = 2.3
我不确定这是一个Xcode 8错误还是它的Apple策略(尝试强制开发人员使用Swift 3.0?).但是......默认情况下,Xcode 8安装Swift 3.0版本的标准Swift运行时库.
在使用LLDM进行调试时,Swift 2.3模块无法加载(进入Swift 3.0运行时).
强制应用程序使用Swift 2.3(或Apple称之为传统的Swift),解决了这个问题.
Swift应用程序已将此设置暴露给Xcode,但您必须手动将其添加到Objective-C应用程序中.
尽快将Swift 2.3代码移植到Swift 3.0,Apple将不会长时间支持2.x.
| 归档时间: |
|
| 查看次数: |
14940 次 |
| 最近记录: |