Инициализация SDK
Убедитесь, что эти шаги выполнены успешно:
Результат шага «Инициализация SDK»:
- Приложение запустилось без ошибок;
- В консоли разработчика в Xcode выведен deviceUUID SDK Mindbox;
- Дополнительно, только если вы делаете интеграцию с созданием и подпиской анонимного пользователя в системе Mindbox — создастся клиент Mindbox.
1. Настройка AppGroup

- Откройте настройки проекта.
- Выберите основной таргет.
- Перейдите на вкладку
Signing & Capabilities. - Нажмите на кнопку «добавить» и выберите
AppGroups. - Добавьте новую группу с названием по шаблону
group.cloud.Mindbox.{bundle id приложения}
Например, bundle id приложения -Mindbox-Sample-App, тогда значение App Group должно бытьgroup.cloud.Mindbox.Mindbox-Sample-App.
AppGroup должна быть собрана по шаблону:
group.cloud.Mindbox.{bundle id приложения}
Если допустить ошибку в шаблоне AppGroup в Main Target — приложение не соберется.
Фактическое значение лучше проверять через файл с расширением .entitlements.
SDK валидирует, что группа названа по шаблону. Если нарушить шаблон, SDK выбросит исключение.
2. Выбор варианта конфигурации SDK
Выберите вариант конфигурации СДК на основе требований от маркетинга.
Важно:
Необходимо получить "<эндпоинт проекта>" от вашего менеджера проекта Mindbox, либо посмотреть его в настройках точки интеграции. Обратите внимание, что «<эндпоинт проекта>» чувствителен к регистру, то есть имеет значение, используются ли заглавные или строчные буквы.
Domain API Mindbox
Это домен, по которому будет происходить обращение в API Mindbox.
Чтобы получить нужный домен для вашего проекта, сделайте следующее:
1. Перейдите на сайт проекта
2. Перейдите в список операций через "Кампании" → "Список кампаний" → "Операции"
3. Откройте любую операцию
4. Нажмите «Посмотреть описание»
5. Скопируйте домен из URL в спецификации

1. Хочу передавать в mindbox анонимных пользователей и отправлять им пуши
Swift
2. Хочу передавать в mindbox анонимных пользователей без возможности отправлять им пуши
Swift
3. Не хочу передавать в mindbox анонимных пользователей
Swift
3. Инициализация SDK
3.1 Инициализация SDK без использования запроса на IDFA
Инициализацию следует проводить синхронно, в главном потоке .
Первую инициализацию желательно проводить ПОСЛЕ запроса разрешения на отслеживание действий пользователя по IDFA при помощи App Tracking Transparency APIs от Apple (iOS 14+).
Если этого не сделать, то при каждой установке приложения будет использоваться IDFV или генерироваться новый deviceUUID.
Если вы используете только SwiftUI и у вас нет файла AppDelegate, то его можно создать.
Данный способ инициализации не учитывает запрос на разрешение использования IDFA, поэтому как идентификатор пользователя будет использоваться IDFV или сгенерированный случайно UUID.
В методе didFinishLaunchingWithOptions инициализируйте библиотеку и используйте вариант конфигурации, выбранный на этапе 2.
Swift
Чтобы проверить корректность инициализации, добавьте вывод deviceUUID в консоль в любом удобном месте.
3.2 Инициализация SDK c использованием IDFA запроса
Если хотите использовать IDFA как идентификатор пользователя в Mindbox, то первую инициализацию нужно провести после запроса разрешения на отслеживание действий пользователя по IDFA при помощи App Tracking Transparency APIs.
В методе initializeMindbox используйте вариант конфигурации, выбранный на этапе 2.
Если используете жизненный цикл UISceneDelegate вместо UIApplicationDelegate, показанному в примере ниже, то используйте соответствующий выбранному жизненному циклу метод.
Swift
Проверьте результат шага «Инициализация SDK»:
- Приложение запустилось без ошибок;
- В консоли разработчика в XCode выведен deviceUUID SDK mindbox;
- Дополнительно, только если вы делаете интеграцию с созданием и подпиской анонимного пользователя в системе Mindbox — создастся клиент Mindbox.
Если вам нужно изменить endpoint
Если ваше приложение используется в нескольких странах, а точное местоположение клиента становится известно только после запуска приложения, может потребоваться смена endpoint для корректной передачи информации о стране. Для этого нужно повторно вызвать Mindbox.shared.initialization и указать в конфигурации новый endpoint