FAQ по iOS SDK
FAQ по интеграции iOS SDK
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 Notifications?
Anchor link toВ разделе Signing & Capabilities настроек вашего проекта необходимо добавить capabilities Push Notifications и Background Modes. При добавлении Background Modes убедитесь, что вы отметили флажок Remote notifications.
В: Какая дополнительная capability требуется для Time Sensitive Notifications?
Anchor link toЕсли вы собираетесь использовать Time Sensitive Notifications (iOS 15+), вам также необходимо добавить capability 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Вам необходимо добавить ключ Pushwoosh_APPID со значением вашего Application Code и ключ PW_API_TOKEN со значением вашего API Token в файл Info.plist вашего приложения.
В: Какова цель отслеживания доставки сообщений?
Anchor link toPushwoosh поддерживает отслеживание событий доставки для push-уведомлений с помощью Notification Service Extension.
В: Как добавить Notification Service Extension в мой проект?
Anchor link toВ Xcode перейдите в File > New > Target…, выберите Notification Service Extension и нажмите Next. Введите имя target и нажмите Finish. Когда появится запрос на активацию, нажмите Cancel.
В: Как добавить Pushwoosh SDK в Notification Service Extension?
Anchor link toДобавьте предоставленный фрагмент кода Swift или Objective-C в главный файл .swift или .m вашего Notification Service Extension. Этот код использует PWNotificationExtensionManager для обработки запроса уведомления.
В: Какова цель App Groups?
Anchor link toCapability App Groups необходима, чтобы позволить Notification Service Extension общаться с основным приложением.
В: Как включить App Groups для моего основного target и Notification Service Extension?
Anchor link toДля обоих targets перейдите в Signing & Capabilities, добавьте capability App Groups и создайте новую группу, нажав кнопку +. Убедитесь, что имя группы начинается с group. и используйте одно и то же имя группы для обоих targets.
В: Какие ключи мне нужно добавить в Info.plist моего основного target для App Groups?
Anchor link toВ Info.plist вашего основного target добавьте ключ PW_APP_GROUPS_NAME и установите его значение равным имени вашей группы App Groups.
В: Какие ключи мне нужно добавить в Info.plist моего Notification Service Extension?
Anchor link toВ Info.plist вашего Notification Service Extension добавьте ключ PW_APP_GROUPS_NAME (установите его равным имени вашей группы App Groups) и ключ Pushwoosh_APPID (установите его равным вашему Application Code).
В: Как проверить интеграцию 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Доступ к payload объекта 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 profile совместим с push-уведомлениями и содержит строку aps-environment со значением production или development. Самый простой способ проверить это — открыть мобильный provisioning profile в любом текстовом редакторе и найти строку aps-environment. Она должна там быть.
Если она есть, а вы продолжаете получать ошибку, это означает, что XCode все еще выбирает профиль, «несовместимый с push-уведомлениями». Пожалуйста, убедитесь, что вы подписываете приложение правильным профилем — иногда, если у вас есть два профиля для одного и того же App ID, XCode путается и подписывает старым.
Рекомендуемые шаги:
- Удалите все профили в XCode;
- Добавьте один-единственный новый профиль;
- Пересоберите приложение.
В: Как выглядят push-токен iOS и hwid?
Anchor link toPush-токены устройств 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– оповещение типа alertNONE– не показывать уведомления, когда приложение находится в активном режиме
В: Как получить push-токен моего iOS-устройства для использования в Test Devices?
Anchor link toЧтобы получить push-токен вашего iOS-устройства,
- Откройте Xcode => Devices & Simulators;
- Подключите тестовое устройство к вашему компьютеру;
- Выберите ваше подключенное устройство в списке устройств слева;
- Нажмите кнопку Open Console.

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

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