1

したがって、Mac のパッケージ化について私が理解していることはほとんどありませんが、起動する実際のプログラムは、Info.plist の CFBundleExecutable キーで定義されているプログラムであることがわかります。

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

現在、/APP/Content/MacOS/JavaApplicationStub が chmoded +x されていない場合、私のアプリは機能しません (何もせずに黙って失敗するだけです。これは苦痛です!)。かなり、実行可能ではないと思います。ただし、ファイルの +x プロパティをサポートしていない場所からアプリをコピーする場合、大きな問題になります。Windows、fat32 USB キー、CDROM、Web サイト、zip ファイルなど...

これらのインスタンスで、アプリを実行できるようにするにはどうすればよいですか? 実行ビットを手動で設定することはできません。

少なくとも、CD から Mac アプリを実行する人がいるに違いありません!

4

2 に答える 2

1

あなたの唯一の選択肢は、APPバンドルをDMGファイルまたはtarにパッケージ化することだと思います。

DMGはより標準的で、tarやzipを使用するのと同じくらい簡単に実行できます。使用するコマンドラインは次のとおりです。

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

任意のプラットフォームからtarを実行できます(cygwinをインストールする場合はWindowsでも、GNUスタンドアロンを使用する場合はhttp://gnuwin32.sourceforge.net/packages/gtar.htm) 。

tar cf app.tar app_directory

gzip圧縮の場合:

tar czf app.tar.gz app_directory
于 2008-10-21T07:10:01.043 に答える
1

@mxcl、それはうまくいきます、ある種、ありがとう。ただし、hdiutilを実行するにはMacを使用する必要があります:(。また、アプリのパスをマックアップします... .appフォルダー内にないファイル(dbファイルなど)がいくつかあったため、 .DMGファイルには含まれていません。

私はWindowsで構築しており、アプリはリムーバブルメディアにデプロイされています。重要なのは、何もインストールしないようにすることです。

アプリはWindowsでも実行されるため、ディスクのルートのmac.appの横にwindows.exeがあります。アプリケーションの両方のバージョンが共有するsqllite.dbファイルもあります。マルチプラットフォームは難しいです:/

于 2008-10-21T07:45:23.797 に答える