com.apple.developer.on-demand-install-capable
(英語)
概要
App Clipはアプリの軽量版で、アプリの機能の一部をユーザーが必要なときに、必要な場面で提供するものです。Xcodeを使うと、App Clipターゲットをアプリのプロジェクトに追加し、App Clipと完全版アプリの間でコードとアセットを共有して、App Clipのビルド、実行、デバッグを行うことができます。
App Clipターゲットの追加
App Clipには、少なくともApp Clipと同じ機能を提供する完全版アプリが必要です。完全版アプリとApp Clipでは、同じXcodeプロジェクトを使用します。新しいアプリプロジェクトを始める場合は、まずXcodeで新規のiOSプロジェクトを作成します。App Clipを既存のiOSアプリに追加する場合は、対象のXcodeプロジェクトを開きます。そして、App ClipターゲットをXcodeプロジェクトに追加します。
-
App Clipテンプレートを使って新規ターゲットを追加します。
-
製品名を選び、App Clipに適用するオプションを選択したら、「Finish(終了)」をクリックします。
選択したオプションに必要なすべてのファイルをXcodeが生成し、以下と共にApp Clipターゲットを追加します。
-
App Clipとそのテストをビルドし、実行するスキーム
-
com
(英語)のエンタイトルメントを追加する「On Demand Install Capable」と呼ばれる新機能.apple .developer .on-demand-install-capable -
App Clip用のアプリIDは、完全版アプリのアプリIDをプレフィックスとして使用し、その後に文字列が続きます。たとえば、完全版アプリのアプリIDが「
$(App
」である場合、App Clip用のアプリIDは「Identifier Prefix)com .example .My アプリ $(App
」となります。Identifier Prefix)com .example .My App .Clip -
App Clipのスキームの一部で、呼び出しをデバッグすることができる
_XCApp
環境変数Clip URL -
完全版アプリと同じデバイスのサポート(macOSを除く)
さらに、XcodeはApp Clipをアプリに埋め込むアプリターゲット用にビルドフェーズを新たに生成します。
コードをApp Clipターゲットに追加する前に、App Clipをシミュレータまたはデバイス上で実行してください。この時点では、まだApp Clipターゲットにコードとアセットを追加していないため、App Clipには空白画面が表示されます。
コードとアセットの追加
App Clipは完全版アプリと同じフレームワークを利用するため、App Clipターゲットへのコードやアセットの追加は、それ以外のターゲットと同じように行うことができます。新規にソースファイルとアセットを作成するか、既存のソースファイルとアセットを使って、App Clipターゲットにメンバーとして追加します。プロジェクトを維持管理しやすいよう、完全版アプリとApp Clipはできるだけコードを共有する必要があります。
-
新規アプリを作成する場合は、App Clipの作成を前提に構築し、モジュール型のコードベースを推奨するベストプラクティスに従ってください。たとえば、再利用可能なコンポーネントを作成してSwiftパッケージ(英語)としてまとめ、完全版アプリとApp Clipの両方でそのパッケージを利用します。詳しくは、「ローカルパッケージを使ったコードの整理(英語)」を参照してください。
-
既存のアプリにApp Clipを追加する場合は、アプリコードベースのリファクタリングに時間を投資してモジュール型のコードにし、完全版アプリとApp Clip間で共有することでコードの重複を避けます。
-
共有アセットを新規アセットカタログに追加し、完全版アプリとApp Clipの両方でこのカタログを利用します。詳細については、Xcodeヘルプの「アセットカタログについて(英語)」を参照してください。
App Clipのサイズの抑制
App Clipを高速で起動するには、App Clipのサイズを小さくする必要があります(非圧縮バイナリで10MB未満)。できれば、この制限を大幅に下回るようにApp Clipのサイズを抑えてください。
App Clipのサイズを測るには、App Clipのアプリサイズレポートを作成します。
-
XcodeでApp Clipに対応するアプリをアーカイブし、「Organizer(オーガナイザ)」ウインドウを開き、アーカイブを選択したら、「Distribute アプリ(アプリの配信)」をクリックします。
-
「App Thinning」と「Rebuild from Bitcode(ビットコードからの再ビルド)」を有効にして、App Clipを「Ad Hoc(アドホック)」または「Development(開発用)」ビルドとして書き出します。
書き出したApp Clipの出力フォルダに、「App Thinning Size Report
」というファイル名のサイズレポートが含まれています。このテキストファイルを開いて、App Clipの各バリアントの非圧縮サイズを確認した後、プロジェクトを調整して各バリアントの非圧縮時のサイズが10MB未満になるようにします。
アプリのサイズ測定の詳細については、「アプリサイズの削減(英語)」を参照してください。
Active Compilation Conditionの使用
多くの場合、アプリにApp Clipを追加することは、アプリのコードをリファクタリングし、より柔軟なモジュール型の再利用可能なコードにする絶好の機会となります。完全版アプリで利用できる機能とフレームワークのほとんどは、App Clipでも利用できます。一方、アプリのコードの一部をApp Clipで使うことができず、かつアプリとApp Clipコードで別のモジュールを作成することが現実的ではない場合もあります。このような場合は、ビルド設定の「Active Compilation Conditions(アクティブコンパイル条件)」を活用して、除外するコードを判定する条件を宣言することができます。
まずApp Clipターゲットのビルド設定画面を開き、ビルド設定の「Active Compilation Condition」に新しい値を入力します(例:APPCLIP
)。その後、App Clipで使いたくないコードを除外するよう、必要な箇所で共有コードにチェックコードを追加します。
次のコードは、「Active Compilation Condition」ビルド設定に追加した「APPCLIP
」という値がないかをチェックします。
次のステップの確認
App ClipターゲットをアプリのXcodeプロジェクトに追加し、プロジェクトに変更を加えることが、App Clipを提供するための最初のステップとなります。次に、作業にかかる時間を含め、以下を実施する計画を立てます。
-
アプリとApp Clipに
Associated Domainsのエンタイトルメント
(英語)を追加し、サーバに変更を加える。詳しくは、「App ClipのWebサイトへの関連付け(英語)」および「App Clipの起動体験の構成」を参照してください。 -
コードに変更を加えて呼び出しに応答させる。詳しくは、「呼び出しへの応答」を参照してください。
-
App Clipの各種体験をApp Store Connectで作成する。このステップは、一般的にはApp Clipの開発ライフサイクルの後半、リリースに近い段階で実施します。ただし、App Clipの各種体験は、呼び出しへの応答や、関連ドメインのサポートと密接に関係しています。そのため、App Clipの起動体験は、開発プロセスの初期に検討しておくことをおすすめします。詳しくは、「App Clipの起動体験の構成」を参照してください。
-
App Clipの起動体験をローカルで、またはTestFlightを使ってテストする。詳しくは、「App Clipの起動体験のテスト」を参照してください。