我在MacOS X上,对于应用程序捆绑类型的东西还很陌生。我正在编写一个打开窗口并注册鼠标输入的程序-而不是命令行工具。当我将代码(用C编写,如果很重要)编译为可执行文件(“ unix可执行文件”),然后直接运行该文件(例如,双击该文件)时,将弹出一个终端窗口,然后然后程序窗口弹出。同样,如果我导航到可执行文件的目录并从命令行打开它,则它会先打开/ another /终端窗口,然后是该程序的窗口。
但是,如果我将可执行文件打包成一个包(因此,我想将其变成一个适当的“应用程序”),那么当我通过双击或从命令行运行该应用程序时,该程序的窗口将打开并且没有新窗口终端窗口已创建。这仅仅是“应用程序捆绑包”体系结构的一个属性吗?还是有一种方法可以运行原始可执行文件而不会引起另一个终端窗口?我怀疑我误解了一些基本知识。提前致谢!
我相信您所看到的是正确的。为了不弹出单独的窗口,您需要将其封装到一个包中。
通过双击捆绑软件或使用Terminal中的“ open”命令启动,将使用Apple的Launch Services,该服务维护已知(已注册)应用程序的列表。将应用程序(捆绑包)引入系统后,它会在Launch Services中注册并与它的URI(例如com.apple.calculator)相关联,该URI出现在捆绑包的Info.plist中
Info.plist中的其他项目告诉启动服务如何处理应用程序,例如检查是否已超过操作系统的最低或最高版本,或者是否显示停靠项。
一个单独的二进制文件没有关联的Info.plist清单,因此它的行为无法改变,并且会打开一个Terminal窗口。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句