Мое приложение использует расширение Siri с пользовательскими намерениями Siri, что является новой функцией для Xcode 10 / iOS 12. Я создаю свои собственные намерения Siri в файле .intentdefinition
(входит в оба приложения и расширение цели).
Мой пользовательский (не системный). Цели Siri объявлены в категории "Do".
Для намерения Siri также требуется файл AppIntentVocabulary.plist
с примерами фраз в нем https://developer.apple.com/documentation/sirikit/registering_custom_vocabulary_with_sirikit
Я включил AppIntentVocabulary.plist
только для цели приложения. Это выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IntentPhrases</key>
<array>
<dict>
<key>IntentName</key>
<string>MyIntentName1</string>
<key>IntentExamples</key>
<array>
<string>Do stuff with foo</string>
<string>Do stuff with fu</string>
</array>
</dict>
<dict>
<key>IntentName</key>
<string>MyIntentName2</string>
<key>IntentExamples</key>
<array>
<string>Do other stuff</string>
</array>
</dict>
</array>
<key>ParameterVocabularies</key>
<array>
<dict>
<key>ParameterNames</key>
<array>
<string>MyIntentName1.someParam</string>
</array>
<key>ParameterVocabulary</key>
<array>
<dict>
<key>VocabularyItemIdentifier</key>
<string>paramName</string>
<key>VocabularyItemSynonyms</key>
<array>
<dict>
<key>VocabularyItemPhrase</key>
<string>foo</string>
<key>VocabularyItemPronunciation</key>
<string>fu</string>
<key>VocabularyItemExamples</key>
<array>
<string>Do stuff with foo</string>
</array>
</dict>
<dict>
<key>VocabularyItemPhrase</key>
<string>bar</string>
<key>VocabularyItemPronunciation</key>
<string>bur</string>
<key>VocabularyItemExamples</key>
<array>
<string>Do stuff with bar</string>
</array>
</dict>
</array>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
Он прекрасно работает и тоже работает нормально. Но когда я пытаюсь отправить его в App Store, я получаю:
[Вывод ошибки транспортера]: ERROR ITMS-90624: «Invalid Intent
Запас слов. Файл AppIntentVocabulary.plist в
Папка Payload / AppName.app / en.lproj не может содержать имя намерения
"MyIntentName1". "
И последующие сообщения об ошибках повторяются для каждой папки .lproj
.
Если это поможет, мое приложение локализовано на 14 языков, проект не использует базовую локализацию.