記事

Intents UI App Extensionターゲットの設定

Xcodeプロジェクトを設定し、Siriとマップのインターフェイスのカスタマイズに使用するIntents UI App Extensionを含めます。

概要

Appには、Intentのカスタムインターフェイスを管理するIntents UI App Extensionを1つまたは複数含めることができます。Extensionごとにビューコントローラクラスが1つあり、これが、サポートされるIntentのインターフェイスを提供します。各Intents UI App Extensionを設定するには、Xcodeプロジェクトにカスタムターゲットを追加し、サポートするIntentを使ってInfo.plistファイルを設定する必要があります。

XcodeプロジェクトにIntents UI App Extensionを追加する

Intents App Extensionを開発する際、Xcodeに対して、同時にIntents UI Extensionも開発するように指示できます。ここで追加しなかった場合でも、後でプロジェクトにIntents UI Extensionを追加できます。

  1. Xcodeを起動し、iOS Appのプロジェクトを開きます。

  2. 「File」>「New」>「Target」の順に選択します。

  3. 「iOS Application Extension」グループから、Intents UI Extensionを選択してください。

  4. 「Next」をクリックします。

  5. Extensionの名前を指定し、言語その他のオプションを設定します。

  6. 「Finish」をクリックします。

Xcodeテンプレートには、Storyboardと1つのビューコントローラが含まれています。Siriやマップは常に、ExtensionのStoryboardファイルに記述されているイニシャルビューコントローラを読み込んで表示するので、ここにコンテンツを設定してください。イニシャルビューコントローラとその他のコンテンツとの間のすべてのやり取りを管理するのは、App側の責任です。通常、イニシャルビューコントローラとのシーンにカスタムビューを追加しますが、子ビューコントローラを埋め込んでIntentごとに異なるコンテンツを表示したい場合もあります。

Extensionが扱うIntentを指定する

プロジェクトにターゲットとしてIntents UI App Extensionを追加したら、Xcodeで用意されたデフォルトのInfo.plistファイルを設定し、どのIntentがカスタムインターフェイスを使用するか指定します。SiriKitはExtensionのInfo.plistファイルの情報を使用して、カスタムビューコントローラを読み込むタイミングを判断します。

  1. Xcodeで、Intents UI App ExtensionのInfo.plistファイルを選択します。

  2. NSExtensionキーおよびNSExtensionAttributesキーを展開します。

  3. IntentsSupportedキーに、Extensionが扱う各IntentのString項目を追加します。その値として、Intentのクラス名を設定してください。

Info.plistファイルのNSExtensionMainStoryboardキーには、ビューコントローラを含むStoryboard名が含まれます。Storyboardファイルの名前を変更する際は、忘れずにこのキーの値も更新してください。プログラムでビューコントローラを作成したい場合は、このキーをNSExtensionPrincipalClassキーに置き換え、値をビューコントローラクラスの名前に設定します。

関連項目

設定

カスタムインターフェイス用ビューコントローラの設定

独自のビューコントローラを作成して、Siriやマップのデフォルトインターフェイスを置き換え、または拡張します。