Mac 以外のプラットフォームで、アプリケーション用のネイティブ Mac OS X インストーラーをビルドするにはどうすればよいですか?
たとえば、Windows PC と Java アプリケーションがあります。Windows pc で、Apple インストーラーで動作するインストーラー (おそらく .dmg アーカイブ内) をビルドする必要があります。
Mac 以外のプラットフォームで、アプリケーション用のネイティブ Mac OS X インストーラーをビルドするにはどうすればよいですか?
たとえば、Windows PC と Java アプリケーションがあります。Windows pc で、Apple インストーラーで動作するインストーラー (おそらく .dmg アーカイブ内) をビルドする必要があります。
Mac 以外のプラットフォームでネイティブの Mac OS X インストーラーを作成できるようになりました。Louis Gerbarg として、注意が必要なのは BOM (部品表) ファイルです。ただし、mkbom のオープン ソース バージョン (Joseph Coffland による osxbom コードに基づく) は、次の場所で入手できます。
http://hogliux.github.io/bomutils
この Web サイトには、Linux で Mac OS X インストーラーを作成するためのステップバイステップのわかりやすいチュートリアルもあります ( http://hogliux.github.io/bomutils/tutorial.html )。
私の会社では定期的にこの方法で Linux に Mac OS X インストーラを作成していますが、これまでのところ大きな問題は発生していません。
Windows で .dmg を作成することは困難ですが、他の人がコメントしたように、圧縮できる .app ファイル構造を作成することは確かに可能です。通常の .pkg ではうまくいかず、ダイアログやインストール前のチェックなどを提供したい場合があります。BitRock installbuilderを使用すると、Mac、Linux、Windows、Solaris のインストーラーをそれぞれからビルドできます。他のプラットフォーム。
他の人がすでに指摘しているように、あなたは本当にこの問題に対して厳しい解決策を取っているので、そうする正当な理由がない限り、ユーザーはあなたの名前をののしるでしょう。確かに、特定の種類のアプリケーションには Mac OSX 用のインストーラーが必要です。これらには一般的に次のものが含まれます。
わかりました、最後のポイントは少し皮肉ですが、ここで私のドリフトを理解できますか? :) 基本的に、通常のエンドユーザー アプリケーションを作成している場合は、Mac ユーザーが期待する通常の方法で配布する必要があります。これは、アプリケーションのバンドルを含む DMG ファイルです。または、本当に凝ったものにしたい場合は、DMG 内の "Applications" フォルダーにエイリアスを貼り付けて、ユーザーがそこにプログラムをドラッグできるようにします。単にシステムによって実行されるのではなく、システムにインストールする必要があるものを作成している場合を除き、ここでインストーラーを使用する理由はありません。また、これは完全に機能する Java JRE が既に含まれている OSX であるため、JRE をインストーラーなどにパッケージ化することについて心配する必要はありません。
この質問をしたことで適切に叱られたので、あなたのソフトウェアが上記のカテゴリのいずれかに該当するという前提で回答します。実際には、VISE インストーラーなどの商用ソリューションを使用するのが最善の策です (繰り返しになりますが、このツールで作成された製品をインストールするときに、大多数の Mac ユーザーが恐怖で後ずさりすることは自信を持って言えます)。ここで探していることを正確に実行するには-基本的に、単一のインストーラーファイルからサポートしたいさまざまなプラットフォーム用にビルドするクロスプラットフォームインストーラーを作成します。
繰り返しになりますが、ここでのあなたの最善の策は、そのプラットフォームのユーザーが最も使い慣れていることを行うことです (これが、あなたの質問に対するすべての回答が、インストーラーを作成しないように促す理由です)。ただし、どうしてもインストーラーを作成する必要がある場合は、非クロスプラットフォーム フレームワークを使用する必要があります。Windows ユーザーは、標準の MSI インストーラーが提供されたときに最も親しみを感じ、Mac ユーザーは Apple インストーラー pkg を使用して最も親しみを感じるでしょう。ただし、PackageMaker プログラムは制限があることで知られているため、必要に応じて代わりにicebergを使用する必要があります。これは、2 つ (またはそれ以上) の別個のインストーラーを管理する必要があるため、メンテナンスが少し増えることを意味しますが、ソフトウェアが非常に複雑でこれを必要とする場合は、快適さのために喜んで犠牲を払う必要がありますあなたのユーザーの。
では、簡単な質問をいくつか。
まず、なぜインストーラーが必要なのですか? ほとんどの Mac ユーザーは、ドラッグしてインストールするだけのアプリを好みます。Mac OS X 固有のコードを作成していない場合、Application Support や LaunchDaemons などの特別な場所にビットを配置する必要があるとは考えにくいでしょう。持っているものがすべて 1 つのフォルダーに入っていると仮定すると、なぜインストーラーを気にする必要があるのでしょうか?
次に、Mac インストーラーを Mac でビルドすることがなぜ問題になるのでしょうか? 確かに、アプリをテストするためのマッキントッシュがあります (Mac でテストせずに盲目的に Mac 用に出荷しているわけではありませんよね?)。
そうは言っても、実際にこれを PC でビルドする正当な理由がまだあると仮定すると、簡単ではない部分がいくつかあります。基本的に、.pkg は、一連のテキスト スクリプト、ローカライズ、アーカイブ ファイル (Archive.pax.gz)、および部品表 (Archive.bom) です。
ビルド間であまり変更がないと仮定すると、Mac でインストーラーを作成してから、bom と pax.gz を再ビルドし、それらを既存の .pkg に置き換えて、いくつかのメタデータをバッチ処理することができます。pax は簡単に扱えるはずですが (pax は標準のアーカイブ形式です)、bom ファイルは少し扱いにくいかもしれません。公に文書化されているとは思えず、それらを作成するためのツール (mkbom) がダーウィンの一部 (オープンソースではありません)。そのため、それを理解し、カスタム ツールを作成して bom ファイルを作成する必要があります。
つまり、これは大量の作業になる可能性があります。
BOM ファイルを読み取るためのこのコードを確認してください: https://cauldrondevelopment.com/svn/osxbom/trunk
Mac にアプリをインストールする通常の方法は、アプリをアプリケーション フォルダーにドラッグすることです。ほとんどのプログラムは、アプリとアプリケーション フォルダーへのシンボリック リンクを含む DMG として提供されます。なぜ他の方法でそれをしたいのですか?優れた Mac アプリケーションを構築するには、Mac について考える必要があります。特に Mac ユーザーにとって、ルック アンド フィールは非常に重要です。
すべてを 1 つの JAR ファイルに入れて、ZIP に追加します。終わり。
しかし、真剣に、アプリケーションを最初にテストせずに Macintosh ユーザーに配布したいですか? どこの惑星にいる!?