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 端末で異なります。使用している端末の手順は、以下の方法で確認してください。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.