可移动媒体上的 .app OSX 软件包问题

Posted

技术标签:

【中文标题】可移动媒体上的 .app OSX 软件包问题【英文标题】:.app OSX package problems on removable media 【发布时间】:2008-10-21 06:56:54 【问题描述】:

因此,根据我对 Mac 打包的了解,我发现实际启动的程序是在 Info.plist 中的 CFBundleExecutable 键下定义的程序。

<key>CFBundleExecutable</key>
<string>JavaApplicationStub</string>

现在,如果 /APP/Content/MacOS/JavaApplicationStub 不是 chmodded +x,我的应用程序将无法工作(它只是默默地失败,不做任何事情,这很痛苦!)。 很公平,我猜它是不可执行的。但是,如果您从不支持文件上的 +x 属性的地方复制应用程序,那将是一个大问题;比如windows、fat32 U盘、CDROM、网站、zip文件等等……

在这些情况下我可以做些什么来使应用程序能够运行?手动设置执行位不是一种选择。

至少会有人从 CD 上运行 Mac 应用程序!

【问题讨论】:

如果从 CD 运行,该应用很可能会以 DMG 形式出现。 【参考方案1】:

我认为您唯一的选择是将 APP 捆绑包打包成 DMG 文件或 tar。

DMG 更加标准,与使用 tar 或 zipping 一样容易。我们使用的命令行是:

hdiutil create -srcfolder Last.fm.app -format UDZO -imagekey zlib-level=9 -scrub Last.fm.dmg

您可以从任何平台进行 tar,(即使是 Windows,如果您安装了 cygwin,或使用 GNU 独立版,http://gnuwin32.sourceforge.net/packages/gtar.htm)

tar cf app.tar app_directory

使用 gzip 压缩:

tar czf app.tar.gz app_directory

【讨论】:

【参考方案2】:

@mxcl,有点用,谢谢。但是,您需要在 Mac 上运行 hdiutil :(。 此外,它弄乱了应用程序的路径……有些文件(如 db 文件)不在 .app 文件夹中,因此不包含在 .DMG 文件中。

我在 Windows 上构建,应用程序正在部署到可移动媒体。重点是避免安装任何东西。

该应用程序也在 Windows 上运行,因此磁盘根目录下的 mac.app 旁边有一个 windows .exe。还有一个两个版本的应用程序共享的 sqllite.db 文件。多平台很难:/

【讨论】:

我修改了答案以包含 tar。您想从哪个平台执行此操作? 最终的包不必只是 .app 文件。但是,如果您要向公众分发并且需要将文件放在他们计算机上的 .app 文件夹之外,您应该使用 mpkg 安装程序。 我只注意到了 cmets! :p 编辑帖子以提供更多细节。

以上是关于可移动媒体上的 .app OSX 软件包问题的主要内容,如果未能解决你的问题,请参考以下文章

mtp模式下无法数据恢复,如何调整成为可移动存储器?

安卓手机怎么移动软件图标?为啥自动移到桌面啊怎么移动到上一页?

请教horizon7 永久磁盘备份恢复方案

如何在 OS X 上获取可移动卷的 NSURL 并在安装时发出通知?

移动广告变现,这几点可能比推荐算法更重要

移动广告变现,这几点可能比推荐算法更重要