Мое приложение использует расширение Siri с настраиваемыми намерениями Siri, что является новой функцией для Xcode 10 / iOS 12. Я разрабатываю свои собственные намерения Siri в файле .intentdefinition
(включаемом как для приложений, так и для целей расширения) .
Мои пользовательские (не системные) намерения Siri объявлены в категории "Что делать".
Намерение 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: «Недопустимый словарь намерений. Файл AppIntentVocabulary.plist в папке Payload / AppName.app / en.lproj не может содержать имя намерения« MyIntentName1 ».
И последующие сообщения об ошибках повторяются для каждой .lproj
папки.
Если это поможет, мое приложение локализовано на 14 языков, проект не использует базовую локализацию.