Android 向けアプリケーションの構築には、かなりの時間を要することがあります。開発中のイテレーションを迅速に行うために、アプリケーションパッケージを再構築する代わりにパッチを適用することができます。アプリケーションパッケージにパッチを適用すると、前回のパッチ以降に変更が加えられたファイルのみが処理され、接続された Android 端末に送信されます。
プラットフォーム | アプリケーションへのパッチ適用 |
---|---|
Android | サポートあり |
ChromeOS | サポートなし |
アプリケーションへのパッチの適用は、Unity エディターで行えます。独自のビルドパイプラインを実装する場合は、スクリプティング API を使用して行うことができます。
アプリケーションへの初回のパッチ適用時には、Unity がデバイス上にパッチ適用環境を構築します。このため、初回のパッチは、以降のパッチよりも時間が掛かります。
Unity エディターからアプリケーションにパッチを適用する場合は、以下の手順に従ってください。
独自のビルドパイプラインを実装する場合は、スクリプティング API を使用してアプリケーションにパッチを適用できます。これを行うには、BuildOptions.BuildScriptsOnly オプションと BuildOptions.PatchPackage オプションを BuildPipeline.BuildPlayer メソッドに渡します。
例:
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity"};
buildPlayerOptions.target = BuildTarget.Android;
// ターンアラウンドタイムを最適化するために、すべてのビルドに Patch & Run を使用します。
// (以前のバージョンでは、最初に通常の Build & Run の使用が必要でした。)
buildPlayerOptions.options = BuildOptions.PatchPackage | BuildOptions.AutoRunPlayer | BuildOptions.Development;
BuildPipeline.BuildPlayer(buildPlayerOptions);
アプリケーションへのパッチ適用時に、Unity は以下を実行します。
/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/
) に格納します。/data/data/<PackageName>/pram-shadow-files/lib/
) に格納します。アプリケーションは、起動時に、APK 内にマーカーファイルがあるかどうかをチェックします。マーカーが存在する場合、アプリケーションはファイルの読み込みを pram-shadow-files
ディレクトリにリダイレクトします。
Build & Run ではパッチファイルは一切消去されません。その代わり APK のインストールが置き換えられます。これにより pram-shadow-files
へのリダイレクトが無効になります。これは、後続のパッチビルドが、変更されていないファイルを再使用できることを意味します。
アプリケーションのキャッシュの消去は Android のストレージ設定を使用して行えます。キャッシュを消去すると、アプリケーションのパッチのビルドプロセスでインストールされたパッチファイルが削除されます。
アプリケーションのキャッシュを消去する手順は各 Android 端末で異なります。使用している端末の手順は、以下の方法で確認してください。