Swiftdebugging器在导入ObjC框架时不显示variables值

当我用Sprite Kit创build一个新的OS X“游戏”项目,并在任何地方设置断点时,我可以看到variables值就好了:

在这里输入图像说明

然后我改变代码来导入我自己的框架(TilemapKit),这是一个纯粹的Objective-C框架:

import SpriteKit import TilemapKit class GameScene: SKScene { override func didMoveToView(view: SKView) { print("dang!") } } 

没有其他的变化。 我甚至没有使用任何TilemapKit代码(还)。 当断点触发时,我看到这个:

在这里输入图像说明

只要观察variables值,整个项目就停止可debugging。 这种行为是完全一致的。 没有框架导入我可以再次debugging。

由于我在Xcode 7 beta(7A121l)和OS X 10.11开发者预览版上,我知道这可能只是一个(临时的)错误。

命令行Tiles设置为使用Xcode 7.0版本btw。 我试图在框架目标中启用模块,确保部署目标是相同的(10.11),禁用符号剥离。 我添加了一个Bridging Header,并在其中导入了TilemapKit框架(在这种情况下,除去Swift导入将仍然给我不可debugging的应用程序,所以它似乎没有关系如何或在哪里我导入框架)。

有没有人有什么可能导致这种行为的build议,我怎么可能去解决它 – 或者至less我怎么可以试图缩小这个问题?

是罪魁祸首更可能连接到项目与框架的构build设置? 我是否需要在应用程序项目中启用某些function才能使其与ObjC框架兼容? (我已经在其他链接器标志中获得了-ObjC)


更新:

我在debugging控制台中运行了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. 

框架构build目录如何改变? 为什么会这样,如何解决这个问题?

PS:在一个新的ObjC应用程序中的相同的框架可以debugging就好了。

我收到了一位苹果开发者的消息,指出他们已经注意到了这个问题,并且可以通过将.framework移动到项目的子文件夹中来解决这个问题。

显然, module .. was built in directory错误,只有当.framework与.xcodeproj aka $(PROJECT_DIR)在同一个文件夹中才会出现。

然而,将框架移动到子文件夹并没有解决我的问题,但它仍然值得一试,直到它被固定在一个更新的Xcode 7testing版(仍然发生在testing版3)。

在我的情况下,这是因为我的项目中多余的import语句。

我的项目混合swift和objc文件,所以我有bridging_header.h文件中的导入语句。

在我的bridging_header.h我有#import blah.h

在其中一个swift文件中,我从框架@import blah // From blah.framework导入冗余头文件@import blah // From blah.framework

我从swift文件中删除了冗余导入,似乎已经修复了它。

我可以确认这是发生在Xcode版本7.0 beta 4(7A165t)。 我不得不删除我的ObjC框架来获取debugging值返回。 如果删除你的框架不是一个选项,打印方法是老派debugging,但仍然有效。

我刚才有这个问题。 在我的情况下,Prefix.pch被包含在Bridging-Header.h中。 这不是一个问题,但在我的Prefix.pch里面有很多C包括使lldb无法导入Bridging-Header。 所以我从Bridging-Header中删除了“#import Prefix.pch”,只是将“#includes”复制到我需要在swift中使用的obj-c文件中。

转到编辑计划在左上angular。

如果是释放,则将configuration更改为debugging 这里