メインコンテンツまでスキップ

チュートリアル:配布用にアプリやプラグインをパッケージ化する

📚 Source Page

さまざまなマーケットプレイスで配布するためにオーディオアプリケーションやプラグインを準備する方法を学びます。異なるOSプラットフォームですべてのプラグインタイプのインストーラーを作成します。

レベル: 上級
プラットフォーム: Windows, macOS
プラグインフォーマット: VST, VST3, AU, AUv3, RTAS, AAX

導入

完璧なプラグインを実装し終わったところで、すべてのラッパーでバグフリー、最高の最適化を達成しましたが、傑作を配布する際にどこから始めればよいかわからない?

それならこのチュートリアルはあなたのために作られました!アプリケーションを配布用に準備することは、複数のプラットフォームにわたるユーザーのシステムへのインストールに関しては非常に困難な場合があります。マーケットプレイスはレビュープロセスがますます厳格になり、わずかな見落としでバイナリの再提出が必要になる可能性があります。

このチュートリアルでは、まずプラグインのインストール場所を見て、次にMacとWindows用のインストーラーの作成に飛び込み、最後にマーケットプレイス提出のベストプラクティスで終わります。

ヒント

このチュートリアルを最大限に活用するには、パッケージ化のためにビルドされたプラグインとバイナリを準備しておいてください。

インストール場所

プラグインのインストールは、ユーザーのマシン上の適切なフォルダの場所にプラグインをコピーするだけの簡単なステップです。

プラグインを配布する際には、さまざまなプラグインラッパーのインストール場所を理解することが重要です。以下の表は、ターゲットOSに応じてインストーラーがファイルをコピーする必要があるディレクトリを示しています:

Macインストールディレクトリ

プラグインタイプディレクトリタイプパス
VSTユーザー~/Library/Audio/Plug-Ins/VST
VSTシステム/Library/Audio/Plug-Ins/VST
VST3ユーザー~/Library/Audio/Plug-Ins/VST3
VST3システム/Library/Audio/Plug-Ins/VST3
AUユーザー~/Library/Audio/Plug-Ins/Components
AUシステム/Library/Audio/Plug-Ins/Components
RTASシステム/Library/Application Support/Digidesign/Plug-Ins
AAXシステム/Library/Application Support/Avid/Audio/Plug-Ins

Windowsインストールディレクトリ

プラグインタイプディレクトリタイプパス
VST共有C:\Program Files\VstPlugins
VST共有C:\Program Files\Steinberg\VstPlugins
VST共有C:\Program Files\Common Files\VST2
VST共有C:\Program Files\Common Files\Steinberg\VST2
VST3共有C:\Program Files\Common Files\VST3
RTAS共有C:\Program Files\Common Files\Digidesign\DAE\Plug-Ins
AAX共有C:\Program Files\Common Files\Avid\Audio\Plug-Ins
ヒント

64ビットシステム上の32ビットプラグインの場合は、「Program Files」フォルダに「(x86)」サフィックスを追加してください。

プラグインをシステムフォルダまたは「Common Files」ディレクトリにインストールすることが一般的に推奨されます。これはほとんどのプラグインメーカーがインストールする場所であり、システム上のすべてのユーザーがプラグインを使用できるようになるという利点があります。ただし、インストールを実行するには管理者権限が必要です。

ヒント

AUv3やAAXなどの特定のプラグインフォーマットでは、インストールプロセスを成功させるためにコード署名や証明書などの追加手順が必要です。

Mac用インストーラー

ヒント

Windowsのみの配布に興味がある場合は、次のセクション「Windows用インストーラー」にスキップしてください。

インストーラーを手動で作成することは可能ですが、このタスクを簡単に実行できる多くのツールがあります。そのような例の1つが、このセクションでMacインストーラーを作成するために使用するフリーソフトウェアPackagesです。

ウェブサイトからソフトウェアをインストールし、アプリケーションを起動します。作成するプロジェクトのタイプを求めるウィンドウが表示されるはずです:

新規プロジェクトウィンドウ
新規プロジェクトウィンドウ

「Distribution」を選択し、Nextボタンをクリックします。次の画面で、プロジェクトを保存する名前と場所、および必要なリソースを選択できます:

プロジェクトの名前と場所の選択
プロジェクトの名前と場所の選択

Createをクリックしてインストーラーの組み立てを開始します。メインプロジェクトウィンドウが開くはずです。

メインウィンドウで、ユーザーのコンピュータにインストールしたいプラグインフォーマットの数だけ、左パネルの**+**記号をクリックしてパッケージを追加します。例えば、VST/VST3/AU/RTAS/AAXをインストールするには、以下のスクリーンショットに示すように、対応する識別子を持つ5つのパッケージを追加します:

パッケージの追加
パッケージの追加

次に、左パネルで各パッケージを選択し、「com.yourcompany.pkg.format」などの一意の識別子を割り当て、「Require admin password for installation」チェックボックスがチェックされていることを確認します(これは、ユーザーディレクトリではなくシステムフォルダにプラグインをインストールするために必要です)。

識別子の設定
識別子の設定

次のステップは、プラグインをコピーする場所をインストーラーに伝えるペイロードの構成です。プラグインが参照しやすいようにプロジェクトディレクトリのどこかにコピーされていることを確認してください。インターフェースの上部にあるPayloadタブを選択し、このチュートリアルの前のセクションで説明した対応するプラグインフォーマットのインストールディレクトリに移動します。ナビゲーションウィンドウに必要なフォルダ構造が表示されない場合は、Hierarchy > New Folderを使用して不足しているフォルダを追加し、適切な名前を付けることができます。次に、**Hierarchy > Add Files...**をクリックし、プロジェクトフォルダから以前にコピーしたプラグインを選択して、目的の場所にプラグインを追加します。

ペイロードの構成
ペイロードの構成

では、左パネルからProjectエントリを選択し、ここに示すようにPresentationタブを選択して、インストールプロセス中に表示されるメッセージをカスタマイズしましょう:

メッセージのカスタマイズ
メッセージのカスタマイズ

この画面では、インストーラーの紹介画面にカスタムメッセージを表示するために使用されるテキストファイルの場所を指定できます。右側のテーブルに**+**記号をクリックしてエントリを追加し、**Choose...**を選択してテキストファイルの場所を指定します。テキストファイルが参照しやすいようにプロジェクトフォルダにコピーしておいてください。プレビューインターフェースの対応するラベルをクリックすることで、「Read Me」および「License」ステップについてもプロセスを繰り返すことができます。

インターフェースの「Installation Type」ステップを選択すると、インストールされるパッケージ名の順序を変更したり、説明を追加したり、デフォルトの状態や表示/非表示を指定したりできます。

パッケージのリスト
パッケージのリスト

配布とパッケージの設定に満足したら、最終段階に進むことができます。File > Saveを押してからBuild > Buildを押してインストーラーのビルドを開始します。手順がエラーなしで成功すると、以下のような画面が表示されるはずです:

配布のビルド
配布のビルド

これにより、プロジェクトフォルダにプロジェクト名の.pkgファイルを持つbuildというフォルダが作成されます。ダブルクリックしてインストールプロセスをテストしてください。

ディスクイメージの作成

ユーザーがダウンロードするためのより包括的でカスタマイズ可能なパッケージを提供するには、前のステップで作成した.pkgファイルからディスクイメージまたは.dmgファイルを作成することが一般的にベストプラクティスです。これは、Applications/Utilitiesフォルダにある組み込みのMacアプリケーションディスクユーティリティを使用して簡単に行うことができます。

.pkgファイルを使用する準備ができたら、.pkgファイルと「License」や「Read Me」ファイルなど、含めたい追加のドキュメントを含むフォルダを作成します。このフォルダはディスクイメージを作成するために使用され、解凍されたときに表示されるコンテンツになります。

ディスクユーティリティを起動し、メニュー項目から**File > New Image > Image from Folder...**に移動し、作成したフォルダを選択します。

ディスクイメージの作成
ディスクイメージの作成

新しいディスクイメージを.dmg拡張子で保存し、Image Formatフィールドから「読み/書き」オプションを選択します。Saveを押すと、次のステップでカスタマイズできる変更可能なディスクイメージが生成されるはずです。新しく作成されたディスクイメージを開くと、作成に使用されたフォルダの内容が表示されるはずです。アイテムを移動したり、メニュー項目からView > Show View Optionsに移動してFinderの表示オプションを開くことで、オプションで背景画像を選択したりできます。

外観のカスタマイズ
外観のカスタマイズ

ディスクイメージの外観に満足したら、変更は自動的に保存されるため、単にイメージを取り出すことができます。ディスクユーティリティに戻り、 Images > Convert... に移動して .dmg ファイルを選択します。ユーザーに表示させたい最終的な名前を .dmg 拡張子を追加して付け、Image Formatフィールドから「読み取り専用」オプションを選択します。

ディスクイメージの変換
ディスクイメージの変換

Convert を押すと、自信を持って顧客に配布できる最終的なディスクイメージが得られるはずです。

ドラッグアンドドロップインストーラーの作成

.pkg配布を作成してインストーラーにプラグインインストールのすべてのコピー/ペーストアクションを実行させる代わりに、ユーザーをもう少し巻き込むディスクイメージのシンプルなバージョンを作成することもできます。この方法は、インストールが本質的にユーザーによって行われるため、エラーが発生しやすいですが、インストール場所をより制御できます。

ドラッグアンドドロップインストーラーは、ユーザーのシステム上のインストール場所へのフォルダエイリアスを提示し、これらのエイリアスを通じて適切なフォルダにプラグインをドラッグアンドドロップするようユーザーを招待する方法で機能します。

このタイプのディスクイメージを作成するには、前のセクションで説明したのと同じ手順に従って、必要なすべてのプラグインを含むフォルダでディスクイメージを作成します。次に、外観をカスタマイズするために以前と同様にディスクイメージを開きます。

サポートしているプラグインフォーマットのシステム上の目的のプラグインインストール場所に移動し(参照としてチュートリアルの冒頭の表を使用)、フォルダを選択し、メニュー項目からFile > Make Aliasに移動してエイリアスを作成します。新しく作成されたエイリアスはディスクイメージに移動でき、フォルダはシステム内の場所を引き続き指します。

代替ディスクイメージ
代替ディスクイメージ

これで、ユーザーはディスクイメージウィンドウ内のエイリアスにプラグインをドラッグアンドドロップするだけでインストールを実行できます。

ヒント

このチュートリアルのこの部分で説明したすべての手順は、アプリケーションのパッケージ化にも適用できます。

Windows用インストーラー

ヒント

Macのみの配布に興味がある場合は、前のセクション「Mac用インストーラー」を参照してください。

インストーラーを手動で作成することは面倒ですが、幸いなことにこのタスクを簡単に実行できる多くのツールがあります。そのような例の1つが、このセクションでWindowsインストーラーを作成するために使用するフリーソフトウェアInno Setupです。

ウェブサイトからソフトウェアをインストールし、アプリケーションを起動します。独自のインストーラースクリプトを記述できるコードエディタを持つウィンドウが表示されるはずです。

Inno Setupメインウィンドウ
Inno Setupメインウィンドウ

WindowsでVST/VST3/RTAS/AAXプラグインをインストールするためのInno Setupスクリプトまたは.issファイルの例は以下のようになります:

[Setup]
AppName=TestPlugin
AppVersion=1.0.0
DefaultDirName={cf}
DefaultGroupName=TestPlugin
OutputBaseFilename=TestPlugin-windows

[Files]
Source: "TestPlugin.dll"; DestDir: "{app}\\Steinberg\\VST2"
Source: "TestPlugin.vst3"; DestDir: "{app}\\Steinberg\\VST3"
Source: "TestPlugin.dpm"; DestDir: "{app}\\Digidesign\\DAE\\Plug-Ins"
Source: "TestPlugin.aaxplugin\*"; DestDir: "{app}\\Avid\\Audio\\Plug-Ins\\TestPlugin.aaxplugin"; Flags: recursesubdirs

ここでは、スクリプトの[Setup]セクションで設定できる一般的なプロパティと、[Files]セクションで特定のフォルダにコピーしたいプラグインがあります。

一般的なWindowsパス場所のショートカットは、目的の変数を中括弧で囲むことでこの構文形式で利用できます。

  • {pf}:C:\Program Filesにある「Program Files」のショートカット。
  • {cf}:C:\Program Files\Common Filesにある「Common Files」のショートカット。
  • {app}:インストール中にユーザーが選択した宛先アプリケーションディレクトリのショートカット。

デフォルトのインストールディレクトリを指定するために、DefaultDirName変数を「Common Files」ディレクトリに設定しますが、ユーザーは以下のようにセットアップインストーラーを実行するときに別の場所にプラグインをインストールすることを選択できます:

宛先アプリケーションディレクトリの選択
宛先アプリケーションディレクトリの選択

インストーラーに各個別のプラグインフォーマットを正しいディレクトリにコピーするよう指示するには、[Files]セクションで個別の行として、作業ディレクトリからのソースファイルをSourceとして、目的のインストール場所をDestDirとして指定します。

AAXプラグインは他のプラグインフォーマットとは異なりフォルダとしてパッケージされているため、すべてのディレクトリコンテンツをコピーするよう指示するためにrecursesubdirsフラグを設定する必要があることに注意してください。

スクリプトの設定に満足したら、Build > Compileを押してインストーラーを作成します。これにより、作業ディレクトリにデフォルトでOutputという名前のディレクトリにSetupアプリケーションが生成されます。このインストーラーの名前は、スクリプトの[Setup]セクションのOutputBaseFilename変数から選択されます。

Inno Setup内で直接インストーラーをテストするには、コンパイルが成功した後にRun > Runを押して、生成されたインストーラーを起動します。

セットアップインストーラーの最終ステップでユーザーがInstallボタンを押すと、プラグインはスクリプトで指定された適切なフォルダにコピーされます:

プラグインのインストール
プラグインのインストール
ヒント

このチュートリアルのこの部分で説明したすべての手順は、アプリケーションのパッケージ化にも適用できます。

ランタイムライブラリのリンク

警告

最近のWindows 10アップデートにより、ランタイムライブラリの静的リンクは非推奨となり、代わりに動的リンクが推奨されています。

Windows用のプラグインをビルドする場合、JUCEはデフォルトでランタイムライブラリの動的リンクを選択します。このユニバーサルランタイムはWindows 10からシステムコアの一部になったため、プラグインがWindows 10のユーザーのみを対象としている場合、問題は発生しないはずです。ただし、8.1からVistaまでのWindowsバージョンでは、顧客のコンピュータにユニバーサルランタイムライブラリがインストールされていない可能性があり、プラグインが正しく動作しない場合があります。

この問題を解決するには、Windows Update経由でユニバーサルランタイムをインストールするようユーザーに促すか、プラグインとともにこれをダウンロードしてインストールするインストーラーを提供することができます。あるいは、静的リンクでプラグインをビルドすることもできますが、これは推奨されません。Windowsは、DAWにロードできるプラグインの数を64に制限するためです。

JUCEがランタイムライブラリをリンクする方法は、Projucerでここで変更できます:

ランタイムライブラリのリンク
ランタイムライブラリのリンク

マーケットプレイス提出

アプリを配布したいストアによって、異なるタイプの要件が存在します。ただし、これらのストアのほとんどでレビュープロセスを加速するために従うことができる一般的なガイドラインがあり、これらには以下が含まれます:

  • 最も曖昧なユースケースでもクラッシュやバグを示さないアプリケーションを提出する。
  • アプリケーションが正確に何をするかを反映した正確な説明を書く。
  • マイクやカメラアクセスなど、アプリケーションが必要とするすべての権限と資格の説明を提供する。

以下に示すように、Projucerのエクスポーター設定からマイクやカメラアクセスを使用するときに説明テキストを簡単に提供できます:

マイクアクセスの理由の説明
マイクアクセスの理由の説明
カメラアクセスの理由の説明
カメラアクセスの理由の説明

「アプリ内購入」や「プッシュ通知」機能など、macOS/iOSに必要なすべてのCapabilities/Entitlementsをリストしていることを確認してください:

iOS機能の有効化
iOS機能の有効化

Androidでは、関連するProjucerフィールドを有効にすることで、Androidマニフェストに必要なすべての機能をリストすることを意味します:

Android機能の有効化
Android機能の有効化

アイコンの正しい画像サイズを提供しないことは、アプリが却下される一般的な理由です。小さいアイコンと大きいアイコンなど、必要なすべてのリソースが含まれていることを確認してください:

小さいアイコンと大きいアイコンの割り当て
小さいアイコンと大きいアイコンの割り当て

最高のユーザーエクスペリエンスを提供するために、iOSの「iOS Deployment Target」やAndroidの「Minimum SDK version」など、最小OSバージョン要件を設定していることを確認してください。

最小iOSバージョンの設定
最小iOSバージョンの設定
最小Androidバージョンの設定
最小Androidバージョンの設定

最後に、JUCEはインターフェースデザインにネイティブUIを使用しないため、アプリの外観にも注意する必要があります。ネイティブデザインを模倣しようとしないでください。これらは却下されます。

まとめ

このチュートリアルでは、アプリケーションやプラグインを配布する方法を学びました。特に、以下のことを行いました:

  • プラグインのインストール場所について学びました。
  • MacとWindows用のインストーラーを作成しました。
  • マーケットプレイスにバイナリを提出する際の一般的な間違いについて議論しました。

関連項目