我正在开发一个运行在10.11+上的macOS应用程序。我的开发机器运行10.12,很可能在今天晚些时候运行10.13。
要在10.11上测试应用程序,我将其复制到运行旧版macOS的Parallels虚拟机中。现在,如果我想在旧系统下实际调试应用程序,我将不得不做什么(这是否可能)?我的崩溃只发生在10.11之下,如果没有断点可用就很难调试。
出现以下问题:
我使用Xcode 9,它需要10.12 afaik,所以我不能只在VM中运行Xcode(除了我使用最新的10.12 SDK专门构建应用程序的事实,这在10.11不可用? )。
实际上是否可能
这个问题通常如何解决?
答案 0 :(得分:0)
要从主机运行lldb并将其连接到VM guest虚拟机,这对我来说适用于Mac的Parallels 14 Pro,El-Capitan VM,Mojave Host
在VM上:
下载Xcode命令行工具并找到lldb-server,我的路径如下,启动服务器:
/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/lldb-server platform --listen "*:1234" --server
在VM上启动您的应用程序-我刚刚使用了共享文件夹
在主机上
$ lldb
lldb> platform select remote-macosx
lldb> platform connect connect://<Your VM - e.g. el-capitan>:1234
lldb> file "<YourPath>/<YourApp>.app/Contents/MacOS/<AppName>"
lldb> platform process list
lldb> attach 750 # The PID from the list command
lldb> process continue
lldb> break set --filename <AnyFileInYourApp>.swift --line <nnn>
lldb> po <variable>
lldb> ... and so on
在文件命令中注意,其不是.app而是二进制文件
现在要找到支持此功能的IDE
Visual Studio代码似乎运行良好,这是我的launch.json条目
{
"name": "Remote attach",
"type": "lldb",
"request": "attach",
"program": "<YourPath>/<YourApp>.app/Contents/MacOS/<AppName>",
"initCommands": [
"platform select remote-macosx",
"platform connect connect://<Your VM - e.g. el-capitan>:1234"
],
}