【问题标题】:Build/Run two targets in Xcode at the same time在 Xcode 中同时构建/运行两个目标
【发布时间】:2018-04-16 03:06:23
【问题描述】:

我正在用 C 语言构建一个简单的客户端-服务器应用程序,并使用 Xcode 作为 IDE 来开发它。这是我第一次使用 Xcode 做任何事情,所以我对这些选项有点不满意。

我创建了两个目标,一个用于客户端,一个用于服务器。我可以构建和运行任何一个都很好。但是,当我想构建和运行两者时(IE 在服务器运行时执行客户端),客户端构建会立即消失。

如果我尝试运行同一目标的两个实例,比如服务器和服务器,我会得到一个提示,提示我是要停止原始进程还是添加新进程。在服务器运行时尝试运行客户端时,我没有得到相同的提示。

奇怪的是,当我在客户端源代码的某处设置断点时,整个事情都按预期运行。我怎样才能让它成为默认行为?

谢谢

【问题讨论】:

    标签: xcode


    【解决方案1】:

    我认为接受的答案已经过时。在 Xcode 9 中,只要您有两个目标,每个应用程序一个,您就可以选择第一个目标并按“运行”以启动该调试会话,当它运行时,切换到第二个目标并再次按“运行”并第二个应用程序将启动。

    在调试器窗格中,您会看到一个下拉菜单,让您可以选择要从哪个目标查看输出。

    我还没有找到如何从同一个方案自动启动它们。它仍然是一个手动过程,但它不需要多个 Xcode 实例或使用命令行。

    【讨论】:

    • 对我来说,这只适用于模拟器。或者更具体地说,我不能同时在设备上调试手表应用和 iOS 应用。但我可以在 sim 上。遗憾的是,文件传输在 sim 上不起作用,所以我又回到了把头撞到墙上,因为我总是使用 Watch 开发应用程序
    • 是的,这不是最好的体验。我仍然对您需要一个仅用于观看的应用程序的主机应用程序感到沮丧。对我来说毫无意义,但是,嘿,他们就是这样做的。
    【解决方案2】:

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

    在我自己的客户端/服务器调试中,我通常做的要么是让两台机器运行 Xcode,其中一台在服务器端测试,另一台在客户端测试。

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

    希望这是有道理的!

    【讨论】:

    • 是的,有道理。客户端和服务器都包含在一个源文件中,所以我很容易在命令行中编译并运行它。猜猜这就是我将继续做的事情。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 2011-04-20
    • 2015-09-26
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多