Version: 2021.2
言語: 日本語
Unity Remote
Android プラグインのビルドと使用

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

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

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

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

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

アプリケーションへのパッチの適用は、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 を使用して適用する

If you implement your own build pipeline, you can use the scripting API to patch your application. To do this, pass the BuildOptions.BuildScriptsOnly and BuildOptions.PatchPackage options to the BuildPipeline.BuildPlayer method.

例:

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 プラグインのビルドと使用