Xcode 命令行工具 - 如何在终端中运行?

12

当你在Xcode中创建一个命令行工具项目时,你会在main.m文件中看到以下内容:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

我可以在Xcode中运行这个程序。但是我想编译它以便我可以从终端中运行它。应该怎么做?

3个回答

13
假设您的可执行文件名为“my_program”,并且位于“/foo/bar/Debug”目录中:
cd /foo/bar
./my_program

如果您不确定如何找到程序文件本身,可以右键单击它(即“产品”),并像此屏幕截图中显示的那样选择“在 Finder 中显示”:

输入图像描述


如何创建 "my_program" 可执行文件? - soleil
1
你已经创建好了,因为你可以在Xcode中运行它。你点击了“播放”三角形,对吧? - original_username
2
请注意,可执行文件与源代码完全分开存放。类似于〜/Library/Developer/Xcode/DerivedData/HelloWorld-gnrlmuhyaotljugurctzowgqmkfy/Build/Products/Debug-iphonesimulator/HelloWorld.app这样的路径。 - Sridhar Sarnobat

9

通过编辑方案,您可以使终端在每次运行应用程序时启动。 我相信这从Xcode 8.0开始提供。

  1. 访问编辑方案

    编辑方案

  2. Console使用Xcode切换到使用终端

    控制台


5
这个功能似乎在 Xcode(8.2.1)中消失了,有什么方法可以恢复它吗? - user1585121
2
仍未拥有它,这是另一个项目:p 但仍然是iOS项目。在我看来必须限制为OSX。 - user1585121
1
在xCode 11中仍然没有“控制台”菜单选项。 - rustyMagnet
这是在Xcode 11.4中的内容,但仅限于MacOS应用程序,似乎不适用于iOS开发 :/ - iCediCe
它从未适用于iOS开发 @iCediCe - Patrick

6
在Xcode 9中,您可以尝试以下操作(在2018年6月对我有效):
  1. 不要点击“编辑方案”,而是点击“新建方案”,给它一个名称并保存
  2. 现在选择您刚刚创建的新方案,然后点击“编辑方案”
  3. 进入“信息”选项卡,在“可执行文件”菜单中选择“其他…”
  4. 在文件窗口中进入搜索输入字段,键入“终端”,然后单击其图标。现在您应该在“可执行文件”字段中看到“Terminal.app”
  5. 进入“参数”选项卡,单击+,并将此行复制并粘贴到其中:${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}
  6. 单击“关闭”,然后使用您选择的新方案运行程序
通常情况下,Xcode会为您打开终端。如果没有,请在“信息”选项卡中关闭任何与调试相关的字段。希望这能帮到您!
完整教程请参见: https://www.raywenderlich.com/163134/command-line-programs-macos-tutorial-2

这个方法在我跟着 Ray 的教程时是有效的,但在我自己的应用中不起作用。我可以在调试器中获得输出,但尝试在终端运行却只得到 [Restored Jan 27, 2018 at 10:06:30 AM] 。你有任何想法我可能做错了什么吗? - Justin Vallely
2
我需要从我的项目名称和文件夹中删除空格才能使其正常工作。 - Justin Vallely
非常感谢您!这完全解决了我在XCode控制台中的“system(”clear“)”问题。 - Smitty-Werben-Jager-Manjenson
@PaulDavid 我很乐意帮忙! - joliejuly
这种方法的缺点是调试。引用 RW 的作者:“你不能以这种方式在 Xcode 中调试应用程序,因为现在 Xcode 在运行期间启动的可执行文件是终端。” - rustyMagnet

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