我想创建一个没有 GUI 但可以访问应用程序包的辅助应用程序。我正在查看 Xcode 命令行项目模板,但这些都只是生成可执行文件。我如何创建类似命令行工具的东西,它不显示应用程序菜单但提供对 .app 中捆绑资源的访问?我是不是想错了?
谢谢。
最佳答案
Peter 的答案(使用 LSUIElement
)可能就是您要找的。有时,我想创建一个实际的命令行应用程序,它也有一个应用程序包。如果其他人遇到相同的情况,这就是我发现的...
应用程序包不是可执行文件。真正的可执行文件隐藏在里面:MyApp.app/Contents/MacOS/MyApp
是名为 MyApp 的应用程序的实际 Mach-O 可执行文件。标准的 Xcode 模板将应用程序链接到 AppKit.framework 并有一个 main.m,它为启动 NSApplication
实例的可执行文件定义 main()
函数。但是,您可以将任何可执行文件放入应用程序包中,包括仅限控制台的应用程序。只需将应用程序模板中 main.m
中的 main()
函数替换为您的控制台应用程序 main()
函数,并从中删除 AppKit.framework应用程序的链接框架。
如果你愿意,如果你想完全避免使用 Objective-C,你可以用一个声明了 main 函数的 main.c 替换 main.m(尽管如果你替换内容,main.m 中没有什么是特定于 Objective-C 的) main()
函数)。
要从控制台运行您的应用程序,您必须指定实际的可执行文件,而不是应用程序包,因此您必须在命令中键入 MyApp.app/Contents/MacOS/MyApp
线。当我为控制台应用程序使用应用程序包(以提供链接的框架、资源等)时,我经常创建一个指向可执行文件的符号链接(symbolic link),并将符号链接(symbolic link)放在/usr/local/bin (或路径上的其他地方)安装或首次运行。
关于objective-c - 无 GUI 应用程序包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226749/