可移动媒体上的 .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 软件包问题的主要内容,如果未能解决你的问题,请参考以下文章
安卓手机怎么移动软件图标?为啥自动移到桌面啊怎么移动到上一页?