ドキュメント

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 App ExtensionのInfo.plistファイルを選択します。

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

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

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

関連項目

設定