【发布时间】:2018-03-06 02:30:59
【问题描述】:
我正在开发一个在 10.11+ 上运行的 macOS 应用程序。我的开发机器运行 10.12,很可能在今天晚些时候运行 10.13。
为了在 10.11 上测试应用程序,我将其复制到运行旧版本 macOS 的 Parallels 虚拟机中。现在如果我想在旧系统下实际调试应用程序,我需要做什么(这甚至可能)?我的崩溃只发生在 10.11 下,如果没有可用的断点,真的很难调试。
出现以下问题:
我使用需要 10.12 afaik 的 Xcode 9,所以我不能只在 VM 内运行 Xcode(除了我专门使用最新的 10.12 SDK 构建应用程序,而这在 10.11 上不可用? )。
那么有没有可能
- 通过从主机上的 Xcode“运行”它来启动虚拟机内的应用程序?
- 在应用从 Xcode 外部手动运行后附加?
- 不使用 Xcode,但至少从命令行调试?
这个问题通常是如何解决的?
【问题讨论】:
-
在这种情况下,我会忽略 Xcode 并在 10.11 VM 中从命令行运行
lldb调试器。这样您就可以从调试器启动应用程序,或者只是在运行时附加到它。 -
嗯,但是我在虚拟机内部的 lldb 中有可用的源代码吗?抱歉,这是一个愚蠢的问题,但我从未在命令行上使用过 lldb。我的意思是我该如何单步执行我的源代码呢?
-
如果是调试版本,那么可以。您还可以为发布版本生成dysm file。将它复制到你正在调试的机器上,在一个 Finder 可以索引它的位置,它应该会自动被拾取。
-
嗯,当我在 vm 中安装 lldb 时,我只得到 Swift 3。我想我需要安装最新的 Swift 4 工具链。现在试试 ;)
-
好的,所以我可以使用旧的 lldb 并运行目标,但我还不能使用文件名和行号设置断点,因为找不到这些位置。我想我需要先学习一些 lldb 的东西 :(
标签: swift xcode macos lldb parallels