创建简单的可可应用程序包装器
我有一个应用程序想要将(与一些附加文件)捆绑在一起在包装应用程序中。
从字面上看,我唯一想做的就是让包装应用程序启动一个资源文件(即,就像我
/path/to/Resources/Bundled.app/Contents/MacOS/executable
在终端中输入:一样。
有意义吗?我认为这应该很简单,但我找不到一种简单的方法来 可以说,我的可可编程能力有限。
这样做——至少
I have an application I want to bundle (with some additional files) together inside a wrapper application.
Literally the only thing I want to do is have the wrapper application launch a resource file (i.e. as if I'd typed:
/path/to/Resources/Bundled.app/Contents/MacOS/executable
into the terminal.
Make sense? I thought this should be simple, but I caouldn't find a simple way to do this-- my cocoa programming is limited, to say the least.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一种方法是,如果封装的“应用程序”只是一个 shell 脚本或其他东西,则为 Platypus。
如果它是一个实际的应用程序(.app 包),为什么应用程序 A 除了启动应用程序 B 之外什么都不做?为什么要有应用程序 A?
One way, if the wrapped “application” is just a shell script or something, is Platypus.
If it's an actual application (.app bundle), why does app A do nothing but launch app B? Why have app A at all?
您的外部程序可以使用 NSBundle 在外部程序的包中定位内部程序。
要运行内部程序:如果它是应用程序,请使用 Launch Services< /a> 或 NSWorkspace;如果它是命令行工具,请使用 NSTask。
Your outer program can use NSBundle to locate the inner program within the outer program's bundle.
To run the inner program: If it's an application, use Launch Services or NSWorkspace; if it's a command-line tool, use NSTask.
我有一篇关于此的博客文章:将任何 shell 脚本变成可双击的应用程序。该条目提到“从一个空的应用程序包开始”...如果我没记错的话,您可以通过使用提到的 Pashua 工具来获得...
I have a blog post up on this: Turn any shell script into a double-clickable app. The entry mentions "start with an empty app bundle"... which you can get by using the Pashua tool mentioned, if I remember correctly...
只是为了后代(如果它对其他人有帮助,这里是我使用的完整代码(在 AppDelegate.m 文件内):
Just for the sake of posterity (and if it helps anyone else, here is the full code I used (inside the AppDelegate.m file):