在Xcode中同时构建/运行两个目标

3
我正在使用Xcode作为IDE开发一个简单的C语言客户端-服务器应用程序。我创建了两个目标,一个是客户端,另一个是服务器。我可以成功地构建和运行它们中的任何一个。但是当我想同时构建和运行两者时(即在服务器运行时执行客户端),客户端构建立即消失。如果我尝试同时运行两个相同目标的实例(例如server和server),我会得到一个提示,询问我是否要停止原始进程或添加新进程。然而,在服务器运行时尝试运行客户端时,我不会得到相同的提示。奇怪的是,当我在客户端源代码中设置断点时,整个程序就像预期的一样运行。我该如何将这个行为设为默认行为呢?谢谢。
2个回答

7
我认为原有的答案已经过时了。在 Xcode 9 中,只要您有两个目标(每个应用程序一个),您可以选择第一个目标并按“运行”按钮启动调试会话,在这一过程中,切换到第二个目标并再次按“运行”按钮即可启动第二个应用程序。
在调试器面板中,您会看到一个下拉菜单,让您选择要查看输出的目标。
我尚未找到如何从同一个方案自动启动它们的方法。这仍然是一个手动过程,但不需要多个 Xcode 实例或使用命令行。

对我来说,这只在模拟器上有效。更具体地说,我无法同时在设备上调试手表应用和iOS应用。但是我可以在模拟器上进行调试。不幸的是,文件传输在模拟器上不起作用,所以我又回到了一如既往地与手表开发纠缠的状态。 - lewis
是的,这不是最好的体验。我仍然感到沮丧,因为观察应用程序需要主机应用程序。对我来说毫无意义,但嘿,这就是他们做事的方式。 - Mark A. Donohoe

0

Xcode调试器一次只能连接一个应用程序。

在我的客户端/服务器调试中,我通常会使用两台运行Xcode的机器,其中一台测试服务器,另一台测试客户端。

如果您只有一台机器,我通常会从命令行运行服务器或客户端实例(您可以通过转到保存构建产品的“Products”文件夹,然后键入“ProductName.app/Contents/MacOS/ProductName”来启动任何应用程序;应用程序二进制文件保存在应用程序包内),然后在实际进行调试的目标上运行Xcode调试器。

希望这有意义!


没错,很有道理。客户端和服务器都包含在一个单一的源文件中,所以我可以很容易地在命令行中编译并运行它们。我想我会继续这样做。谢谢。 - IMerin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接