Отображение картинки и кнопки
Результат этапа «Отображение картинки и кнопок при раскрытии push-уведомления»:
Мобильное push-уведомление должно раскрыться путем длинного нажатия и под ним нарисоваться картинка во всю ширину экрана и настроенные кнопки.
Проверить, что картинка и кнопки отрисовались при длинном нажатии на push-уведомление, можно с помощью этой инструкции.
1. Создание расширения
- В Xcode выбрать
Select File > New > Target - Выбрать
Notification Content Extensionи нажатьNext. - Ввести
Product nameMindboxNotificationContentExtension и нажать Finish. - Нажать
Activateна диалоговом окне Activate scheme.

2. Настройка расширения
2.1. iOS Deployment Target
Проверьте версии iOS Deployment Target. Версии iOS Deployment Target должны быть одинаковыми в:
- Main target,
- Service extension
- Content extension.
Их можно найти по пути Your Project Name -> Targets -> Target Name -> General -> Minimum Deployments -> iOS
iOS Deployment Target очень важный пункт для правильной работы Service Extension и Content Extension
Важно следить за этим параметром, особенно после обновления на новую версию Xcode. Он может измениться автоматически, что приведет к неправильной работе Service Extension и Content Extension
2.2. App groups
- Откройте настройки проекта;
- Выберите таргет
MindboxNotificationContentExtension; - Перейдите на вкладку
Signing & Capabilities; - Нажмите на кнопку «добавить» и выберите
AppGroups; - Добавьте новую группу с названием по шаблону
group.cloud.Mindbox.{bundle id приложения};
Например, bundle id приложения —Mindbox-Sample-App, тогда значение App Group должно бытьgroup.cloud.Mindbox.Mindbox-Sample-App.

Настройка App Group обязательная для работы Mindbox SDK
Если упустить этот шаг, то при получении push-уведомления расширение может упасть с ошибкой, которую будет очень тяжело отловить.
2.3. Подпись расширения
Нужно подписать расширение тем же сертификатом, что и основное приложение. Если у вас стоит автоматическая подпись — все подпишется само, если ручная — необходимо вручную создать сертификаты для таргетов и проставить в «Signing & Capabilities».
2.4. Проверка rich-push уведомлений, используя Xcode debug сборки.
Проверьте в разделе Target -> Build Phases -> Embed App Extension -> галочка с Copy only when installing должна быть убрана
Убирайте эту галочку ТОЛЬКО если вы собираетесь проверять Rich-Push Notifications используя Debug-сборки, собранные через Xcode напрямую.

3. Добавление SDK в проект
- В Xcode нажмите в верхнем меню “File” -> “Add Packages…”
- В открывшемся окне добавьте ссылку на Mindbox SDK https://github.com/mindbox-cloud/ios-sdk и нажмите на «Add Package».
- После загрузки пакета, необходимо указать таргеты:
MindboxNotificationsServiceдобавьте в ранее созданныйMindboxNotificationServiceExtensionMindboxNotificationsContentдобавьте в ранее созданныйMindboxNotificationContentExtension

4. Реализация кода расширения в приложении
Для реализации надо сделать 2 шага:
- импортировать библиотеку в файл
NotificationViewController.swiftи вызвать там методMindboxNotificationService(); - поправить настройки в файле
Info.plist
Code
Настройка Info.plist
В файле Info.plist в MindboxNotificationContent нужно внести следующие изменения:
- Удалить пункт
NSExtensionMainStoryboard. - Добавить пункты:
| Пункт | Значение |
|---|---|
NSExtensionPrincipalClass | Собирается по шаблону: {название расширения}.{название контроллера}Если все сделано точно по инструкции, тогда должно быть такое значение: MindboxNotificationContentExtension.NotificationViewController |
UNNotificationExtensionCategory | если используете простую реализацию Service Extension: MindBoxCategoryIdentifier |
UNNotificationExtensionInitialContentSizeRatio | 0,0001 |
Пример:

Удаление MainInterface.storyboard
При создании расширения в папке создается файл с расширением .storyboard. Его необходимо удалить, потому что наш метод обработает UI самостоятельно.
Если вам не подходит способ реализации, описанный выше, предлагаем использовать продвинутый способ: для использования собственной верстки Rich Push нужно реализовать весь код самостоятельно.
Специальных рекомендаций тут нет, никакие дополнительные методы указывать не нужно.
Проверьте, что картинка и кнопки отрисовались при клике на push-уведомление.
Дебаг стандартных ошибок — здесь.
Проверка результата «Отображение превью картинки»
- Мобильное push-уведомление по длинному нажатию должно раскрыться и под ним нарисоваться картинка во всю ширину экрана и настроенные кнопки.
Если вы тестируете push-уведомления в окружении Sandbox, не забудьте поставить галочку "Тестовое сообщение Sandbox" в профиле рассылки "Вручную".
Подробнее про Sandbox-окружение