Перейти к содержанию

Часто задаваемые вопросы по iOS SDK

FAQ по интеграции с iOS

Anchor link to

В: Как установить Pushwoosh SDK в мой iOS-проект?

Anchor link to

О: Вы можете интегрировать Pushwoosh SDK с помощью Swift Package Manager или CocoaPods.

В: Как установить Pushwoosh SDK с помощью Swift Package Manager?

Anchor link to

О: В Xcode перейдите в раздел Package Dependencies и добавьте пакет, используя следующий URL: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

В: Как установить Pushwoosh SDK с помощью CocoaPods?

Anchor link to

О: Откройте Podfile вашего проекта и добавьте строку pod 'PushwooshXCFramework'. Затем выполните команду pod install в терминале.

В: Какие возможности (capabilities) нужно добавить в проект, чтобы включить Push-уведомления?

Anchor link to

О: В разделе Signing & Capabilities настроек вашего проекта необходимо добавить возможности Push Notifications и Background Modes. При добавлении Background Modes убедитесь, что вы отметили флажком Remote notifications.

В: Какая дополнительная возможность требуется для уведомлений, чувствительных ко времени (Time Sensitive Notifications)?

Anchor link to

О: Если вы планируете использовать уведомления, чувствительные ко времени (Time Sensitive Notifications, iOS 15+), вам также необходимо добавить возможность Time Sensitive Notifications.

В: Куда нужно добавить код инициализации Pushwoosh?

Anchor link to

О: Код инициализации необходимо добавить в ваш класс AppDelegate.

В: Какой код инициализации следует добавить в AppDelegate для SwiftUI?

Anchor link to

О: Пожалуйста, обратитесь к предоставленному примеру кода на Swift для интеграции Pushwoosh в проект SwiftUI.

В: Какой код инициализации следует добавить в стандартный AppDelegate на Swift?

Anchor link to

О: Пожалуйста, обратитесь к предоставленному примеру кода на Swift для интеграции Pushwoosh в стандартный проект Swift.

В: Какой код инициализации следует добавить в AppDelegate на Objective-C?

Anchor link to

О: Пожалуйста, обратитесь к предоставленному примеру кода на Objective-C для интеграции Pushwoosh в проект Objective-C.

В: Какие ключи нужно добавить в мой файл Info.plist?

Anchor link to

О: Вам необходимо добавить в файл Info.plist вашего приложения ключ Pushwoosh_APPID со значением вашего кода приложения (Application Code) и ключ PW_API_TOKEN со значением вашего API-токена.

В: Какова цель отслеживания доставки сообщений?

Anchor link to

О: Pushwoosh поддерживает отслеживание событий доставки push-уведомлений с помощью расширения службы уведомлений (Notification Service Extension).

В: Как добавить расширение службы уведомлений (Notification Service Extension) в мой проект?

Anchor link to

О: В Xcode перейдите в File > New > Target…, выберите Notification Service Extension и нажмите Next. Введите имя цели (target name) и нажмите Finish. Когда появится запрос на активацию, нажмите Cancel.

В: Как добавить Pushwoosh SDK в расширение службы уведомлений (Notification Service Extension)?

Anchor link to

О: Добавьте предоставленный фрагмент кода на Swift или Objective-C в главный файл .swift или .m вашего расширения службы уведомлений. Этот код использует PWNotificationExtensionManager для обработки запроса уведомления.

В: Каково назначение групп приложений (App Groups)?

Anchor link to

О: Возможность App Groups необходима, чтобы позволить расширению службы уведомлений (Notification Service Extension) взаимодействовать с основным приложением.

В: Как включить группы приложений (App Groups) для моей основной цели и расширения службы уведомлений?

Anchor link to

О: Для обеих целей (targets) перейдите в Signing & Capabilities, добавьте возможность App Groups и создайте новую группу, нажав кнопку +. Убедитесь, что имя группы начинается с group. и используйте одно и то же имя группы для обеих целей.

В: Какие ключи нужно добавить в Info.plist моей основной цели для App Groups?

Anchor link to

О: В Info.plist вашей основной цели добавьте ключ PW_APP_GROUPS_NAME и установите его значение равным имени вашей группы App Groups.

В: Какие ключи нужно добавить в Info.plist моего расширения службы уведомлений?

Anchor link to

О: В Info.plist вашего расширения службы уведомлений добавьте ключ PW_APP_GROUPS_NAME (установив его равным имени вашей группы App Groups) и ключ Pushwoosh_APPID (установив его равным вашему коду приложения).

В: Как проверить интеграцию с Pushwoosh?

Anchor link to

О: После сборки и запуска вашего проекта перейдите в Pushwoosh Control Panel и отправьте push-уведомление в ваше приложение. Вы должны увидеть уведомление на своем устройстве.

В: Какие два основных колбэка для обработки push-уведомлений существуют в Pushwoosh SDK?

Anchor link to

О: Два основных колбэка — это onMessageReceived и onMessageOpened.

В: Когда вызывается колбэк onMessageReceived?

Anchor link to

О: Метод onMessageReceived вызывается, когда приложение получает push-уведомление.

В: Когда вызывается колбэк onMessageOpened?

Anchor link to

О: Метод onMessageOpened вызывается, когда пользователь взаимодействует с push-уведомлением и открывает его.

В: Как получить доступ к полезной нагрузке (payload) полученного или открытого push-уведомления?

Anchor link to

О: Доступ к полезной нагрузке объекта PWMessage (передаваемого в колбэки onMessageReceived и onMessageOpened) можно получить через его свойство payload.

В: Как установить идентификатор пользователя (user ID) в Pushwoosh?

Anchor link to

О: Используйте метод setUserId(_:) объекта Pushwoosh.sharedInstance(), передав ID пользователя в качестве аргумента.

В: Как установить адрес электронной почты пользователя в Pushwoosh?

Anchor link to

О: Используйте метод setEmail(_:) объекта Pushwoosh.sharedInstance(), указав email пользователя.

В: Как установить дополнительную информацию о пользователе в виде тегов в Pushwoosh?

Anchor link to

О: Используйте метод setTags(_:) объекта Pushwoosh.sharedInstance(), передав словарь, где ключи — это имена тегов, а значения — соответствующие значения тегов.

В: Как отследить событие пользователя с дополнительными атрибутами?

Anchor link to

О: Используйте метод postEvent(_:withAttributes:) объекта PWInAppManager.shared(), указав имя события (например, "login") и словарь атрибутов (например, "name", "last_login").

В: Как отследить событие покупки с деталями продукта?

Anchor link to

О: Используйте метод postEvent(_:withAttributes:) объекта PWInAppManager.shared() с именем события "purchase" и словарем, содержащим детали продукта, такие как "product_id", "product_name", "price" и "quantity".

В: Как настроить делегат для обработки отображения rich media?

Anchor link to

О: В вашем view controller или другом подходящем классе реализуйте протокол PWRichMediaPresentingDelegate и установите свойство delegate объекта PWRichMediaManager.shared() на ваш экземпляр, соответствующий протоколу.

В: Как настроить стиль отображения rich media?

Anchor link to

О: Используйте объект PWModalWindowConfiguration.shared() для настройки таких свойств, как положение модального окна и анимации появления/исчезновения, с помощью метода configureModalWindow(with:present:dismiss:).

В: К какой информации я могу получить доступ в методах делегата rich media?

Anchor link to

О: Методы делегата предоставляют доступ к объекту PWRichMedia, который содержит информацию о контенте rich media, включая его pushPayload. Метод presentingDidFailForRichMedia:withError: также предоставляет объект Error, описывающий ошибку.

Устранение неполадок

Anchor link to

В: Ошибка “Your provisioning profile does not have APS entry”

Anchor link to

Если вы видите сообщение об ошибке “Your provisioning profile does not have APS entry.”, убедитесь, что ваш provisioning-профиль совместим с push-уведомлениями и содержит в себе строку aps-environment со значением production или development. Самый простой способ проверки — открыть мобильный provisioning-профиль в любом текстовом редакторе и найти строку aps-environment. Она должна там быть.

Если она есть, но вы продолжаете получать ошибку, это означает, что XCode все еще выбирает “несовместимый с push” профиль. Пожалуйста, убедитесь, что вы подписываете приложение правильным профилем — иногда, если у вас есть два профиля для одного и того же App ID, XCode путается и подписывает старым.

Рекомендуемые шаги:

  1. Удалите все профили из XCode;
  2. Добавьте один-единственный новый профиль;
  3. Пересоберите приложение.

В: Как выглядят push-токен и HWID для iOS?

Anchor link to

Push-токены устройств iOS — это строки из 64 шестнадцатеричных символов. Пример push-токена:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
Убедитесь, что push-токены iOS, которые вы используете при таргетинге на конкретные устройства в ваших API-запросах, указаны в нижнем регистре.

Pushwoosh использует IDFV в качестве HWID устройства. Обратите внимание, что он может измениться, если пользователь переустановит все приложения от определенного поставщика.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

В: Как включать и выключать баннер, когда мое приложение запущено?

Anchor link to

По умолчанию последняя версия нашего iOS SDK отображает баннер уведомлений, когда приложение работает на переднем плане.
Вы можете управлять этим поведением, изменяя следующие флаги в Info.plist:

Флаг Pushwoosh_ALERT_TYPE – тип string, значения:

  • BANNER – значение по умолчанию, отображает баннерное оповещение в приложении
  • ALERT – стандартное оповещение (alert)
  • NONE – не показывать уведомления, когда приложение находится на переднем плане

В: Как получить push-токен моего iOS-устройства для использования в Тестовых устройствах?

Anchor link to

Чтобы получить push-токен вашего iOS-устройства:

  1. Откройте Xcode => Devices & Simulators;
  2. Подключите тестовое устройство к вашему компьютеру;
  3. Выберите ваше подключенное устройство в списке устройств слева;
  4. Нажмите кнопку Open Console.

Запустите приложение, для которого вам нужен push-токен устройства, и найдите ваш 64-символьный шестнадцатеричный push-токен в строке “Registered for push notifications”:

В: Почему бейджи не сбрасываются после того, как я удаляю приложение и переустанавливаю его через короткий промежуток времени?

Anchor link to

Это ожидаемое поведение — бейджами управляет сама iOS, и их значения хранятся в настройках приложения, которые не удаляются мгновенно при удалении вашего приложения. Значение бейджа остается там на некоторое время в случае немедленной переустановки, что приводит к отображению тех же бейджей после повторной установки приложения.