无GUI应用程序包

Mat*_*ong 9 cocoa command-line objective-c

我想创建一个没有GUI但可以访问应用程序包的帮助应用程序.我正在查看Xcode命令行项目模板,但这些只是生成可执行文件.如何创建类似命令行工具的东西,它不提供应用程序菜单,但提供对.app中捆绑资源的访问?我是否以错误的方式思考这个问题?

谢谢.

Bar*_*ark 16

彼得的答案(使用LSUIElement)可能就是你要找的东西.偶尔,我想创建一个也有应用程序包的实际命令行应用程序.如果其他人遇到同样的情况,这就是我发现的......

应用包不是可执行文件.真正的可执行文件隐藏在内部:MyApp.app/Contents/MacOS/MyApp是名为MyApp的应用程序的实际Mach-O可执行文件.标准的Xcode模板将应用程序链接到AppKit.framework,并有一个main.m,它定义了main()启动NSApplication实例的可执行文件的功能.但是,您可以将任何可执行文件放入应用程序包中,包括仅限控制台的应用程序.只需更换main()功能main.m与您的控制台应用程序的应用程序模板main()的功能和应用程序的链接框架删除AppKit.framework.

如果你想要,你可以用main.cm替换main.c,如果你想完全避免使用Objective-C(尽管如果你替换main()函数的内容,main.m中没有必然特定于Objective-C)).

要从控制台运行应用程序,您必须指定实际的可执行文件,而不是应用程序包,因此您必须MyApp.app/Contents/MacOS/MyApp在命令行键入.当我使用app bundle作为控制台应用程序(提供链接的框架,资源等)时,我经常为可执行文件创建一个符号链接,并将符号链接放在/ usr/local/bin(或路径中的其他位置)安装或首次运行.


Pet*_*sey 11

我想创建一个没有GUI的辅助应用程序,但确实有...应用程序包.

这称为代理,您可以通过创建常规应用程序并将其LSUIElement键设置为字符串"1"来创建代理.