ドキュメント

Unity Engine

Unity Engine

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

Perform an application patch, rather than a full build, to increase iteration speed.
読み終わるまでの所要時間 7 分最終更新 1ヶ月前

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

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

アプリケーションへのパッチの適用は、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 ウィンドウ。

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

独自のビルドパイプラインを実装する場合は、スクリプティング API を使用してアプリケーションにパッチを適用できます。これを行うには、BuildOptions.BuildScriptsOnly オプションと BuildOptions.PatchPackage オプションを BuildPipeline.BuildPlayer メソッドに渡します。
例:
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity"};buildPlayerOptions.target = BuildTarget.Android;// Use Patch & Run for all builds for optimal turn-around times.// (In prior versions, an initial regular Build & Run was necessary.)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. サポートウェブサイトで、アプリケーションのキャッシュを消去する手順を検索してください。