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

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

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

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

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

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

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

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

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

// Ресурсы 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"
 
// Ресурсы анимации виртуального ассистента (шар-логотип ассистента)
// Вы можете добавить все анимации сразу в bundle приложения
ln -s "path/to/frameworks/dir/OKNIKS.framework/OKNIKSAnimations.bundle/OKNIKSFullAnimations.xcassets" "@OKNIKSFullAnimations.xcassets"
// Или можете загружать большую часть анимаций из CDN:
ln -s "path/to/frameworks/dir/OKNIKS.framework/OKNIKSAnimations.bundle/OKNIKSReducedAnimations.xcassets" "@OKNIKSReducedAnimations.xcassets"

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

При редактировании и добавлении новой версии в AssistantSDK.xcdatamodeld необходимо:

  • обновить ссылку на нее в таргете, в который интегрируется SDK;
  • добавить версию в перечисление: CoreDataVersion.

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

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

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

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

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

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

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

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

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

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

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

Шаг 5 (опционально). Добавьте скрипт 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

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней