Интеграция библиотеки ZGRImSDK в мобильное приложение в ручном режиме#
Настройка основного приложения#
Необходимо убедиться в наличии всех необходимых файлов от ZGR:
ZGRConfig.json
(файл конфигурации);ZGRImSDK.xcframework
(динамическая универсальная библиотека).
Далее открыть Xcode и установить фреймворк в приложение:
Перетянуть полученный от ZGR конфигурационный файл
ZGRConfig.json
в иерархию файлов проекта (левая панель в Xcode).Активировать чек-бокс “Copy items if needed”.
Перетянуть файл
ZGRImSDK.xcframework
в иерархию файлов проекта (левая панель в Xcode).Активировать чек-бокс “Copy items if needed”.
Перейти в основные настройки таргета приложения (первая вкладка) к разделу “Frameworks, Libraries and Embedded Content” и нажать <+>.
В открывшемся меню выбрать библиотеку
ZGRImSDK.xcframework
и нажать <Add>.Убедиться, что библиотека будет копироваться в бандл вашего приложения посредством установки пункта “Embed & Sign”.

Создание и настройка расширений приложения#
Notification Service Extension
Обязательно для корректной работы SDK.
Сервис, занимающийся в фоне отправкой отчетов о прочтении.
Необходимо создать расширение приложения (extension):
Зайти в меню приложения и на левой панели в нижнем левом углу нажать <+>.
В списке расширений выбрать “Notification Service Extension”.
Ввести любое название. Например, notification-service.
Во всплывающем запросе на активацию новосозданной схемы выбрать “Cancel”.
Далее связать сервис уведомлений с библиотекой ZGRImSDK.xcframework
:
Перейти в основные настройки таргета “Notification Service Extension”, раздел “Frameworks, Libraries and Embedded Content”, нажать <+>.
В открывшемся меню выбрать “ZGRImSDK.xcframework”, нажать <Add>.
Библиотека уже скопирована основным таргетом в бандл приложения, поэтому здесь нужно выбрать “Do Not Embed”.

Notification Content Extension
Опционально. Не влияет на корректную работу SDK.
Сервис, занимающийся отображением расширенного медиаконтента в push-уведомлении.
Необходимо cоздать расширение приложения (extension):
Зайти в меню приложения и на левой панели в нижнем левом углу нажать <+>.
В списке расширений выбрать “Notification Content Extension”.
Ввести любое название. Например, notification-content.
Во всплывающем запросе на активацию новосозданной схемы выбрать “Cancel”.
Далее связать сервис уведомлений с библиотекой ZGRImSDK.xcframework
:
Перейти в основные настройки таргета “Notification Content Extension”, раздел “Frameworks, Libraries and Embedded Content”, нажать <+>.
В открывшемся меню выбрать “ZGRImSDK.xcframework”, нажать <Add>.
Библиотека уже скопирована основным таргетом в бандл приложения, поэтому здесь нужно выбрать “Do Not Embed”.

Настройка App Group#
Данный шаг необходимо выполнить для возможности синхронизации конфигурации и локальной базы данных пушей между основным приложением и его расширениями.
Стандартный метод формирования имени группы#
В SDK Rapporto стандартным методом формирования имени группы в приложении принята формула group. + основной бандл приложения.
Необходимо добавить Сapability -> App Group в возможности вашего приложения. Для этого следует:
Перейти в настройки основного таргета вашего приложения.
Перейти во вкладку “Signing & Capabilities”.
Нажать кнопку <+ Capability>.
Выбрать “App Groups”.
В появившемся разделе “App Groups” нажать кнопку <+ (Создание новой группы)>.
В окне “Add a new container” после group. ввести идентификатор вашего приложения (bundle identifier).

Пример: приложение имеет идентификатор ru.zagruzka.TestApp, в данное поле необходимо ввести строку group.ru.zagruzka.TestApp
.

Без изменений повторить шаги 2-6 для таргетов Notification Service Extension и Notification Content Extension.


Нестандартный метод формирования имени группы#
Необходимо повторить шаги по добавлению группы в приложение, описанные выше.
В окне ввода идентификатора группы ввести необходимую нам строку.

Проверить, что группа создалась и имеет необходимый вам идентификатор.

В файле info.plist основного таргета приложения создать новую настройку с идентификатором
ZGR_APP_GROUP_NAME_KEY
типаString
и значением необходимого вам идентификатора группы.

Важно
Если данную настройку не внести в файл info.plist, SDK будет считать, что формирование идентификатора группы в приложенни идет по стандартной формуле. Результатом ошибки может быть непредсказуемая работа приложения, недоставка необходимых статусов на бэкенд и остутствие записей о пришедших нотификациях в локальной БД.
Далее повторить шаги 2-6 для таргетов Notification Service Extension и Notification Content Extension.

