# iOS プレイヤーのサイズの最適化

> Reduce and optimize the size of the iOS Player.

ビルドされた iOS プレイヤーのサイズを小さくするには、主に 2 つの方法があります。Xcode 内でリリースビルドを作成する方法と、Unity 内でストリッピングレベルを変更する方法です。

## リリースビルド##release-build

最終的なリリースビルドは Xcode 内で作成することをお勧めします。メニューバーを操作して **Product** > **Archive** を選択します。このオプションを使用すると、正しいリリース設定で、デバッグシンボルの削除を確実に実行できます。このコマンドを発行した後、Xcode は Organizer ウィンドウの Archives タブに切り替わります。アプリケーションサイズの計算方法と、その他のサイズを削減するためのヒントについては、[アプリケーションのサイズの削減](https://developer.apple.com/library/content/qa/qa1795/_index.html)を参照してください。

**ノート**: 無線でのダウンロード制限を目標にしている場合は、エラーに対して若干の余裕をみておくことをお勧めします。現在のダウンロード制限は 200 MB に設定されています。ただし、iOS 13 以降、200 MB を超えるアプリケーションをダウンロードするために、アプリケーションユーザーはこの制限を無効にするオプションを使用できるようになりました。

## マネージコードストリッピング##managed-code-stripping

ビルドプロセス中、Unity はマネージコードストリッピングと呼ばれる技術により、使用されていないコードや到達できないコードを削除し、アプリケーションの最終的なサイズを大幅に削減しています。詳細については、[マネージコードストリッピング](/engine/6000.0/manual/scripting/compilation-and-code-reload/backends/managed-code-stripping.md)を参照してください。

**注意**アプリケーションで必要とされているのに誤ってストリッピングされてしまったクラスがどれかを判断するのが難しい場合があります。多くの場合、ストリッピングされたアプリケーションを[シミュレーター](https://developer.apple.com/documentation/xcode/running-your-app-in-simulator-or-on-a-device)で実行し、Xcode コンソールでエラーメッセージを確認すると、有用な情報が得られます。

## ビルドサイズの削減##reduce-the-build-size

以下のチェックリストは、ビルドのサイズを削減する際のヒントとして使用できます。

* テクスチャの圧縮を有効にして、非圧縮サウンドの数を最小にします。ファイルサイズの削減に関する詳細とヒントは、[ビルドのファイルサイズの削減](/engine/6000.0/manual/platform-specific/cross-platform-features/reducing-filesize.md)を参照してください。

* [**iOS Player settings**](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md) ウィンドウで

  * [**Strip Engine Code**](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md#Optimization) を有効にします。
  * script call optimization level を [**Fast but no exceptions**](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md#Optimization) に設定します。
  * API Compatibility Level を [**.Net Standard**](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md#Configuration) に設定します。

* 不要なコードの依存関係を取り除きます。

* 値型 (構造体も含む) との組み合わせでジェネリックコンテナーを使用することは避けます。

## Unity アプリケーションサイズの最小化##minimum-unity-application-size

サイズの最適化を無効にすると、空のプロジェクトはアプリストアで約 20 MB になる可能性があります。コードストリッピングを使用すると、空のシーンを含むアプリケーションを、アプリストアで 12 MB 未満に減らすことができます。ただし、アプリケーションは zip 形式で圧縮され、デジタル著作権管理 (DRM) が添付されている必要があります。

## Apple App Store でのアプリケーションのサイズ増加##increased-application-size-in-the-apple-app-store

アプリケーションを公開するときに、Apple App Store では最初にバイナリファイルを暗号化して zip で圧縮します。暗号化によってコードセグメントがよりランダムになり、圧縮前のアプリケーションサイズが増加することがあります。
