首页 文章

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

提问于
浏览
1

因此,从我对Mac的打包知之甚少,我看到启动的实际程序是在Info.plist中的CFBundleExecutable键下定义的程序 .

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

现在,如果/ APP / Content / MacOS / JavaApplicationStub不是chmodded x,我的应用程序就无法工作(它只是在没有做任何事情的情况下无声地失败,这很痛苦!) . 很公平,我认为它不可执行 . 但是,如果你从某个地方复制应用程序,那就是一个很大的问题,那个地方需要支持文件上的x属性;如windows,fat32 USB密钥,CDROM,网站,zip文件等......

在这些实例中我可以做些什么来使应用程序能够运行?手动设置执行位不是一个选项 .

必须有人在CD上运行Mac应用程序,至少!

2 回答

  • 1

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

    DMG更标准,就像使用焦油或拉链一样容易 . 我们使用的命令行是:

    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
    
  • 1

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

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

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

相关问题