Подключение SDK

Подключение SDK состоит из 3 шагов:

  1. Привязка SDK к таргету.
  2. Добавление ресурсов.
  3. Настройка доступа к дополнительным функциям.

При наличии таргета в xcodeproj (это может быть фреймворк, библиотека, виджет и пр.) и интеграции SDK в приложение, необходимо привязать SDK к этому таргету.

Обратите внимание: фреймворки собраны статически, поэтому их не нужно добавлять в секцию Embeded Binaries.

Шаг 2. Добавьте в таргет ресурсы

Ресурсы — это картинки, звуковые файлы, анимации и сертификаты для проверки достоверности сервера. Эти ресурсы представляют собой отдельные фреймворки, которые входят в SDK.

Скопируйте или сделайте символьные ссылки на следующие русурсы из фреймворков:

  • AssistantSDK.xcframework/AssistantSDK.bundle/AssistantSDK.xcassets
  • AssistantSDK.xcframework/AssistantSDK.bundle/AssistantSDK.xcdatamodeld
  • AssistantSDK.xcframework/AssistantEarcons.bundle
  • AssistantSDK.xcframework/GlobalSignRSAOVSSLCA_2018.der
  • DevicesDesignSystem.xcframework/DevicesDesignSystem.xcassets

Добавлять ресурсы в таргет рекомендуется с помощью символьных ссылок. Это позволит автоматически обновлять ресурсы при добавлении новых.

В скрипте ниже представлены примеры символьных ссылок, которые необходимо добавлять в соответствующую директорию.

// Ресурсы AssistantSDK
ln -s "path/to/frameworks/dir/AssistantSDK.framework/AssistantSDK.bundle/AssistantSDK.xcassets" "@AssistantSDK.xcassets"
ln -s "path/to/frameworks/dir/AssistantSDK.framework/AssistantSDK.bundle/AssistantSDK.xcdatamodeld" "@AssistantSDK.xcdatamodeld"
ln -s "path/to/frameworks/dir/AssistantSDK.framework/AssistantEarcons.bundle" "@AssistantEarcons.bundle"
 
// Ресурсы DevicesDesignSystem
ln -s "path/to/frameworks/dir/DevicesDesignSystem.framework/DevicesDesignSystem.bundle/DevicesDesignSystem.xcassets" "@DevicesDesignSystem.xcassets"

Добавьте все созданные ссылки на ресурсы в нужный таргет проекта и проверьте, что они есть в секции Copy Bundle Resources во вкладке Builds Phases.

Шаг 3. Добавьте ресурсы для ОКНИКС (шар-логотип ассистента)

Чтобы добавить ресурсы для ОКНИНКС:

  1. Сделайте ссылки для:

    • OKNIKS.framework/OKNIKSAnimations.bundle/OKNIKSFullAnimations.xcassets, если хотите добавить все анимации сразу в bundle приложения. Это действие сильно увеличит итоговый размер приложения.
    • OKNIKS.framework/OKNIKSAnimations.bundle/OKNIKSReducedAnimations.xcassets, если хотите загружать большую часть анимаций с CDN.
  2. В AppAssistantGraph в качестве значения okniksResourcesParams задайте путь до вашего CDN и папки ресурсов, в которой лежит конфигурационный файл. Подробности можно узнать в чате поддержки.
  3. Выключите флаг okniksResourcesNormal:
case .okniksResourcesNormal: return .disabled
okniksResourcesParams: ResourceLoaderParams(
    host: "https://test.stat.online.sberbank.ru",
    resourePath: "VA/okniks_resources"
)
  1. Добавьте все созданные ссылки на ресурсы в нужный таргет проекта.
  2. Проверьте, что все созданные ссылки на ресурсы в есть в секции Copy Bundle Resources во вкладке Builds Phases.

Шаг 4. Обновите Info.plist вашего приложения

Приложение может запрашивать разрешение на получение доступа к дополнительным функциям, например, к микрофону и геолокации.

Чтобы получить доступ к этим функциям, необходимо подготовить текст, который будет показан пользователю, и запрашивать у него доступ к данным. Текст необходимо вставить в качестве значения элемента <string>.

Получение доступа к функциям регулируется по следующим ключам:

  • NSMicrophoneUsageDescription — для доступа к микрофону и использования голосового ассистента;
  • NSContactsUsageDescription — для поиска контактов в контактной книге клиента;
  • NSLocationWhenInUseUsageDescription — для доступа к геопозиции клиента.

Примеры использования функций:

<key>NSMicrophoneUsageDescription</key>
<string>Необходим для работы голосового помощника</string>
<key>NSContactsUsageDescription</key>
<string>Необходим для работы переводов в голосовом помощнике</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Необходим для выполнения запросов, связанных с метонахождением пользователя</string>

Шаг 5 (опционально). Добавьте скрипт fixprotobufmodule_stability.sh

Выполняйте этот шаг, если ваша версия Xcode выше, чем 12.4.

Скрипт необходим для стабильной работы фреймворка Protobuf. Его необходимо добавить в Build Phase таргета, к которому линкуется Assistant SDK.

Теперь Apple не поддерживает перенаправление GCC-флагов во фреймворки, собранные с Module Stability. Поэтому модуль Protobuf не может импортировать необходимые заголовочные файлы, и флаг GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS не обрабатывается. Скрипт позволяет модифицировать эти заголовочные файлы прямо в папке с фреймворками (Sberthage > Build).

Шаг 6 (опционально). Добавьте скрипт removeunusedarchs.sh

Выполняйте этот шаг, если ваша версия Xcode выше, чем 12.4.

Шаг необходимо выполнить, если вы получили следующую ошибку:

Building for iOS Simulator, but the linked and embedded framework 'Protobuf.framework' was built for iOS + iOS Simulator.

Добавьте настройку XCODE в xcconfig или в Build Settings проекта:

VALIDATE_WORKSPACE = YES