当我使用Sprite Kit创建一个新的OS X"Game"项目,并在任何地方设置断点时,我可以看到变量值就好了:

然后我更改代码以导入我自己的框架(TilemapKit),这是一个纯粹的Objective-C框架:
import SpriteKit
import TilemapKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
print("dang!")
}
}
Run Code Online (Sandbox Code Playgroud)
没有其他变化.我甚至没有使用任何TilemapKit代码.当断点触发时,我看到:

就观察变量值而言,整个项目停止可调试.这种行为完全一致.没有框架导入,我可以再次调试.
由于我使用Xcode 7 beta(7A121l)和OS X 10.11开发人员预览版,我知道这可能只是一个(临时)错误.
命令行Tiles设置为使用Xcode 7.0版本btw.我尝试在框架目标中启用模块,确保部署目标相同(10.11),禁用符号剥离.我在其中添加了一个Bridging Header和#imported TilemapKit框架(在这种情况下删除Swift导入仍然会给我不可调试的应用程序,所以我导入框架的方式和位置似乎并不重要).
有没有人建议什么可能导致这种行为以及我如何解决这个问题 - 或者至少我如何尝试缩小问题?
罪魁祸首是否更有可能与项目的框架构建设置相关联?我是否需要在应用程序项目中启用某些内容以使其与ObjC框架兼容?(我已在其他链接器标志中获得-ObjC)
更新:
我跑进po self调试控制台,发现了这个通知:
<built-in>:3:6: error: module 'TilemapKit' was built in directory '/TilemapKit.framework' but now resides in directory './TilemapKit.framework'
#define __clang_major__ 7
^
missing required module 'TilemapKit'
Debug info from this module will be unavailable in the debugger.
Run Code Online (Sandbox Code Playgroud)
为什么框架构建目录发生了变化?那为什么会这么重要以及如何解决这个问题?
PS:新的ObjC应用程序中的相同框架可以调试得很好.
替代标题(以帮助搜索)
- 无法调试链接到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内置的应用程序,则不会发生这种情况.
xcode ×2
debugging ×1
frameworks ×1
lldb ×1
swift2 ×1
swift2.3 ×1
swift3 ×1
xcode7-beta2 ×1
xcode8 ×1