アプリストアにアプリを提出する
アプリ軽量化とは何ですか? (iOS、tvOS、watchOS)
App Store とオペレーティングシステムは、最小限の記録でユーザの特定のデバイスとオペレーティングシステムのバージョンの機能に合わせてアプリ配信を調整することにより、iOS、tvOS、および watchOS アプリのインストールを最適化します。この アプリの軽量化 と呼ばれる最適化により、ほとんどのデバイス機能を使用するアプリを作成し、最小のディスク容量を占有し、アップルが適用できる将来のアップデートに対応できます。他のアプリやコンテンツのダウンロードが高速になり、容量が増えるため、ユーザエクスペリエンスが向上します。
スライス化 (iOS,tvOS)
スライス化 とは、さまざまなターゲットデバイスとオペレーティングシステムのバージョンに応じて、アプリバンドルのバリアントを作成して配信するプロセスです。バリアント には、ターゲットデバイスとオペレーティングシステムのバージョンに必要な、実行可能なアーキテクチャとリソースのみが含まれています。アプリのフルバージョンを引き続き開発し、App Store Connect にアップロードします。App Store は、アプリがサポートするデバイスとオペレーティングシステムのバージョンに基づいて、さまざまなバリアントを作成して配信します。アセットカタログを使用して、App Store が各バリアントに適した画像、GPU リソース、およびその他のデータを選択できるようにします。ユーザがアプリをインストールすると、ユーザのデバイスとオペレーティングシステムのバージョンのバリアントがダウンロードされてインストールされます。
Xcode は開発中にスライス化をシミュレートするため、ローカルでバリアントを作成およびテストできます。Xcode は、デバイス上またはシミュレータでアプリをビルドして実行するときに、アプリをスライスします。アーカイブを作成すると、Xcode にアプリのフルバージョンが含まれますが、アーカイブからバリアントをエクスポートできます。
注意:スライスされたアプリは、iOS および tvOS 9.0 以降を実行しているデバイスでサポートされます。それ以外の場合、App Store は ユニバーサルバリアント を顧客に配布します。ユニバーサルバリアントは、モバイルデバイス管理 (MDM)、Apple School Manager または Apple Business Manager を介して大量に購入したアプリ、または iTunes 12.6 以前を使用してダウンロードしたアプリでも配布されます。
ビットコード(Bitcodde)
ビットコード は、コンパイルされたプログラムの中間表現です。App Store Connect にアップロードしたビットコードを含むアプリは、App Store でコンパイルおよびリンクされます。ビットコードを含めると、Apple は将来、アプリの新しいバージョンを App Store に提出する必要なく、アプリのバイナリ を再最適化できます。
iOS アプリの場合、ビットコードがデフォルトですがオプションです。watchOS および tvOS アプリの場合、ビットコードが必要です。ビットコードを提供する場合、アプリバンドル内のすべてのアプリとフレームワーク (プロジェクト内のすべてのターゲット) にビットコードを含める必要があります。
Xcode はデフォルトでアプリのシンボルを非表示にするため、Apple はそれらを読み取ることができません。アプリを App Store Connect にアップロードする ときに、シンボルを含めるオプションがあります。シンボルを含めると、TestFlight を使用してアプリを配布する とき、または App Store からアプリを配布する ときに、Apple が アプリのクラッシュレポートを提供 できるようになります。クラッシュレポートを自分で収集して シンボル化 したい場合は、シンボルをアップロードする必要はありません。代わりに、アプリを配布した後で ビットコードコンパイル dSYM ファイルをダウンロード できます。
オンデマンドリソース (iOS、tvOS)
オンデマンドリソース は、キーワードやタグ付けしたり、グループでリクエストしたりできる、画像や音声などのリソースです。App Store は Apple サーバ上のリソースをホストし、ダウンロードを管理します。また、App Store はまたオンデマンドリソースをスライスし、アプリのバリアントをさらに最適化します。
オンデマンドのリソースにより、ユーザーエクスペリエンスが向上します。
- アプリのサイズが小さくなるため、アプリのダウンロードが速くなり、初回の起動エクスペリエンスが向上します。
- オンデマンドリソースは、ユーザーがアプリを探索している間、必要に応じてバックグラウンドでダウンロードされます。
- オペレーティングシステムは、オンデマンドリソースが不要になり、ディスク容量が少なくなると、それらをパージします。
たとえば、ユーザがそのレベルに移動することをアプリが予測する場合にのみ、アプリはリソースをレベルに分割し、次のレベルのリソースを要求する場合があります。同様に、ユーザが対応するアプリ内購入を行った場合にのみ、アプリはアプリ内購入リソースを要求できます。
注意:(App Store の外で) アプリを登録済みデバイスに配布する 場合は、オンデマンドリソースを自分でホストしなければなりません。
アプリにオンデマンドリソースを設定するには、オンデマンドリソースガイド と NSBundleResourceRequest をご覧ください。