我正在尝试在多个物理设备上并行执行 iOS 应用程序。在过去(XCode 4.3 和 iOS 6),我通过使用 gdb 调试器(iOS 6.1.3 和更低版本)的fruitstrap 完成了这一任务。在 XCode 5 中,Apple 删除了gdb 调试器并用lldb 调试器替换了它。
我重构了我的 fruitstrap 脚本,它可以与 lldb 调试器一起使用。但是,无法并行执行多个 lldb 进程。我在 lldb 控制台中收到以下错误消息:
(lldb) run
error: a process is already being debugged
我可以在 [apple source code}( http://www.opensource.apple.com/source/lldb/lldb-76/source/API/SBTarget.cpp ) 中看到他们一次只允许一个进程:
if (sb_process.IsValid())
{
state = sb_process->GetState();
if (sb_process->IsAlive() && state != eStateConnected)
{
if (state == eStateAttaching)
error.SetErrorString ("process attach is in progress");
else
error.SetErrorString ("a process is already being debugged");
sb_process.Clear();
return sb_process;
}
}
问题
- 有谁知道如何并行运行多个 lldb 进程?
- 是否有任何其他工具可以在多个物理设备上并行启动 iOS 应用程序,它兼容 iOS 6 和 iOS 7 并且可以通过命令行执行?(XCTest仅适用于 iOS 7,Instruments不接受多个并行进程,过去 gdb 中使用的libimobiledevice也是如此)?
任何帮助或想法表示赞赏:-)