Интеграция библиотеки 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.
 
