Version: 2022.3
言語: 日本語
Unity Remote
Android のプラグインの作成と利用

アプリケーションへのパッチ適用

Android 向けアプリケーションの構築には、かなりの時間を要することがあります。開発中のイテレーションを迅速に行うために、アプリケーションパッケージを再構築する代わりにパッチを適用することができます。アプリケーションパッケージにパッチを適用すると、前回のパッチ以降に変更が加えられたファイルのみが処理され、接続された Android 端末に送信されます。

プラットフォームの互換性

プラットフォーム アプリケーションへのパッチ適用
Android サポートあり
ChromeOS サポートなし

アプリケーションへのパッチ適用方法

アプリケーションへのパッチの適用は、Unity エディターで行えます。独自のビルドパイプラインを実装する場合は、スクリプティング API を使用して行うことができます。

アプリケーションへの初回のパッチ適用時には、Unity がデバイス上にパッチ適用環境を構築します。このため、初回のパッチは、以降のパッチよりも時間が掛かります。

エディターから適用する

Unity エディターからアプリケーションにパッチを適用する場合は、以下の手順に従ってください。

  1. Build Settings ウィンドウを開きます (メニュー: File > Build Settings)。
  2. Platform リストから Android プラットフォームを選択します。
  3. Development Build を有効にします。
  4. Patch を選択するか、(Unity がパッチの構築を終了した後にそれを実行する場合は) Patch And Run を選択してください。
Android の Build Settings ウィンドウ
Android の Build Settings ウィンドウ

スクリプティング API を使用して適用する

独自のビルドパイプラインを実装する場合は、スクリプティング 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 は以下を実行します。

  • すべてのコンパイル済み Java ソースを含んだ最小限の APK を作成します。
  • 前回のパッチ以降に変更されたファイルを取得し、アプリケーションのキャッシュフォルダー内のディレクトリ (/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/) に格納します。
  • ネイティブライブラリファイル (Il2cpp を使用してコンパイルされたスクリプトを含む) を、アプリケーションのデータディレクトリ (/data/data/<PackageName>/pram-shadow-files/lib/) に格納します。

アプリケーションは、起動時に、APK 内にマーカーファイルがあるかどうかをチェックします。マーカーが存在する場合、アプリケーションはファイルの読み込みを pram-shadow-files ディレクトリにリダイレクトします。

Build & Run ではパッチファイルは一切消去されません。その代わり APK のインストールが置き換えられます。これにより pram-shadow-files へのリダイレクトが無効になります。これは、後続のパッチビルドが、変更されていないファイルを再使用できることを意味します。

パッチファイルの消去

アプリケーションのキャッシュの消去は Android のストレージ設定を使用して行えます。キャッシュを消去すると、アプリケーションのパッチのビルドプロセスでインストールされたパッチファイルが削除されます。

アプリケーションのキャッシュを消去する手順は各 Android 端末で異なります。使用している端末の手順は、以下の方法で確認してください。

  1. デバイスメーカーや携帯通信会社のサポートを利用する を開きます。
  2. 使用しているデバイスのメーカーを確認し、そのメーカーのサポートサイトへのリンクを辿ってください。
  3. サポートサイトで、アプリケーションのキャッシュを消去する方法を検索してください。
Unity Remote
Android のプラグインの作成と利用