所以我用 Common Lisp 写了一个程序,现在让它在 OSX 中运行。我有一个“unix 可执行文件”,它是在使用 :executable t 转储图像时创建的。
我的问题始于如何将程序放在扩展坞上(我最终创建了可执行文件的别名并将其附加到垃圾箱所在的“堆栈”区域)。但是,每当我单击别名时,它首先启动终端,然后终端调用可执行文件。
所以我的问题是如何让它在不调用 CLI 的情况下直接启动?
所以我用 Common Lisp 写了一个程序,现在让它在 OSX 中运行。我有一个“unix 可执行文件”,它是在使用 :executable t 转储图像时创建的。
我的问题始于如何将程序放在扩展坞上(我最终创建了可执行文件的别名并将其附加到垃圾箱所在的“堆栈”区域)。但是,每当我单击别名时,它首先启动终端,然后终端调用可执行文件。
所以我的问题是如何让它在不调用 CLI 的情况下直接启动?
好的,所以在尝试了几件事之后,我得出的结论是,我在上面找到的解决方案,虽然它让我创建了.app
可从 OSX 的 Finder 调用的包,但要么不完整,要么我只是不知道如何让我的系统读取我手动创建info.plist
的我将语言设置LSEnvironment
为 UTF-8 的位置。XCode 不会打开文件,说它已损坏,尽管我只是复制了一个现有文件并编辑了条目。
所以我最终写了一个脚本来调用我的程序:
#!/bin/zsh
open -a ~/bin/locker
然后我使用Platypus从脚本创建了一个.app
包,它就可以工作了!我仍然必须将语言设置LSEnvironment
为 UTF-8,这是使用 XCode 完成的,这次它没有进行比较,以前的(手动创建的)info.plist
文件是用 Emacs 编写的。
很高兴你解决了你的主要问题。关于本地化问题,如果您通过终端运行应用程序并预先添加 LANG=en_US.UTF-8,会发生什么?
如需更通用的解决方案,请查看以下两个链接:cocoabuilder、mactipsandtricks