Sponsor Link
環境&対象
- macOS Big Sur 11.1
- Xcode 12.3
- iOS 14.2
SiriKit
SiriKit を使って対応することで、Siri 経由で、自分のアプリを操作してもらうことができるようになります。
そのためには、ユーザーが自分のアプリ名を呼んでくれる必要があり、そのアプリ名を Siri が聞き取ってくれる必要があります。
自分のアプリの呼び名を定義する方法がいくつかありますので、紹介します。
Apple のこちらのドキュメントを参照してます。
Siri での呼ばれ方
以下は、Apple のドキュメントの例です。(英語と日本語を抜粋してます)
- (<appName> で)休暇というメモを作ってモントリオール大好きと書いて
- Create a note called Vacation saying I love Montreal on <appName>.
この appName の箇所に、アプリケーション名が入ります。
# 日本語と英語での アプリケーション名の位置が違うのが興味深いです。文章の先頭で指定する国は、非常に少ないです
アプリケーション名指定方法
CFBundleDisplayName
アプリ側の Info.plist で設定される必要があります。
変更してしまうと、(Siri だけでなく)表示も変更されてしまうので、通常では、Siri のために変更したくないはずです。
CFBundleSpokenName
アプリ側の Info.plist で設定される必要があります。
特に Siri 対応していなくとも、キー値としては持っていても良いようです。VoiceOver でアプリの名前が読まれるときにも使われる設定です。
InAlternativeAppNames
このキーは、Siri 対応向けに設定されるものです。この設定も アプリ側の Info.plist で設定される必要があります。
アプリに複数の名前を与えると同時に読み方も指定できます。
以下は、Apple ドキュメントに記載されている例です。
INAlternativeAppNames INAlternativeAppName Unicorn Pay INAlternativeAppNamePronunciationHint you nee corn pay INAlternativeAppName Unicorn INAlternativeAppNamePronunciationHint you nee corn
Unicorn が発音用に、 you nee corn となっているのが面白いですね。
IntentPhrases
フレーズ例を設定できます。この設定は アプリ側の AppIntentVocabulary.plist として設定される必要があります。
アプリ名まで入れたフレーズを設定し、どの Intent に該当するかを指定できます。(以下の例では、アプリ名は、”Cuddly Creatures” です)
IntentPhrases IntentExamples Look for silly cat photos with Cuddly Creatures. Can you show my album of dog photos in Cuddly Creatures? IntentName INSearchForPhotosIntent IntentExamples Start a photo slide show in Cuddly Creatures. IntentName INStartPhotoPlaybackIntent
フレーズ例は、対応する Intent ごとに用意する必要があります。また、ローカライズ毎にも用意される必要があります。(不足していると AppStore から Warning が来るそうです)
Localization
ローカライズリソースも参考にされます。この設定も アプリ側の Info.plist で設定される必要があります。
上の AppIntentVocabulary.plist もローカライズできるので、ローカライズ先ごとに用意する必要があります。
自分の作ったアプリが、Siri から なかなか認識されないときにお試しください。
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link