是否有可能从XCode调试Swift构建安装NOT?

问题描述:

我使用的XCode 8.2.1与3.0.1雨燕是否有可能从XCode调试Swift构建安装NOT?

我部署调试版本,以面料/ Crashlytics使用FASTLANE我的本地机器上,所以我有在XCode的组织者适当.xcarchive的。

我能够连接到使用的XCode>调试我的iPhone上的应用程序>附加由PID或名称

来处理现在的问题是,整个斯威夫特的东西对我来说是调试不可用。没有任何象征性的断点,没有po正在为Swift工作。此外,lldb预计Objective-C的语法,所以我能够做的东西,如po [[UIApplication sharedApplication] delegate]

现在我试图从协议扩展访问可计算的属性,并没有运气。所以,问题是:

考虑:假设我有

protocol Some { 
    var some: String { get } 
} 

extension Some { 
    var some: String { 
     get { 
      return "Hello" 
     } 
    } 
} 

class AppDelegate: UIResponder, Some { 
} 

需要:接入AppDelegatesomelldb

po [[[UIApplication sharedApplication] delegate] some] results属性错误:

error: Execution was interrupted, reason: Attempted to dereference an invalid ObjC Object or send it an unrecognized selector. The process has been returned to the state before expression evaluation.

任何使用Swift语法或其他建议的机会?谢谢!

无法调试本地未构建的Swift/ObjC混合代码。

+0

谢谢吉姆! 我已经提到过我在同一台机器上构建过,所以我有一个存档。这不够,构建应该直接从XCode运行?你有任何解释参考? –

+0

swift调试格式是编译器内部状态的序列化,因此一个要求是编译器构建的代码必须与链接到调试器的版本相匹配。如果你有ObjC-Swift绑定,那么调试器也必须重新生成绑定到swift编译器的clang模块。这通常意味着当您调试时,用于编译应用程序的SDK必须存在,并且您使用的任何ObjC头文件也必须存在。由于许多路径直接记录在过程中,这些位必须全部位于其原始位置。 –

+0

如果满足这两个要求,您应该能够调试您的存档代码。这在去年(2016年)的WWDC会议上进行了讨论。但是,这并不比我刚刚说的多。 –