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

Получение push-уведомлений на iOS

Push-уведомления на iOS отправляются через Apple Push Notification service (APNs).

Для iOS используются сертификаты APNs двух типов: dev (нужен в процессе разработки) и dist (используется как в процессе разработки, так и для стандартной работы приложения). Формат сертификата обязательно должен быть .p12.

Выбор окружения APNs (dev / dist)

Какой тип уведомлений будет отправлять сервер, определяется параметрами account config:

  • send_dev_ios_pushes — отправка через APNs Sandbox.

  • send_dist_ios_pushes — отправка через APNs Production.

Внимание!

Одновременно должен быть включён только один режим: либо send_dev_ios_pushes, либо send_dist_ios_pushes.

Как изменить параметр: см. Редактор настроек аккаунта (account config).

N.B.

Для выполнения следующих действий требуется действительный аккаунт разработчика Apple, устройство Mac c Xcode и действительный сертификат разработчика, установленный в Цепочку ключей (Keychain).

Для получения сертификатов APNs выполните следующие действия:

  1. Выполните вход в Apple Developer Center и выберите раздел Identifiers, затем нажмите на кнопку со значком плюса.

  2. Выберите App IDs и нажмите Continue.

  3. Заполните форму нового App ID: введите Description (описание) вашего App ID, в поле Bundle ID выберите Explicit и укажите в строке ввода Bundle ID в виде обратного доменного имени, например com.push.webim.test (т.е. test.webim.push.com в обратном порядке).

  4. На этой же странице в списке Capabilities отметьте функциональность, которую вы реализуете в вашем приложении, а также Push Notifications, затем нажмите Continue.

    N.B.

    Убедитесь, что вы создали App ID без подстановочного знака. Для идентификаторов с подстановочным знаком нельзя использовать службу push-уведомлений. Не путайте App ID и Bundle ID: Bundle ID имеет вид com.company.appname и определён в info.plist.

  5. Подтвердите настройки App ID, нажав Register.

  6. Вернитесь в раздел Identifiers и выберите только что созданный вами App ID.

  7. Прокрутите до Push Notifications и нажмите Configure.

  8. В секции Development SSL Certificate нажмите Create Certificate.

    Далее откроется форма создания сертификата. Для создания сертификата потребуется CSR-файл, сгенерированный на вашем устройстве Mac.

  9. Откройте на Mac сервис Keychain Access. В шапке приложения (полоска сверху) нажмите Keychain Access и перейдите в Create Assistant -> Request a Certificate From a Certificate Authority.

  10. В окне информации о сертификате заполните форму, указав ваш Email и имя. Выберите сохранение на диске и нажмите Continue. CSR-файл будет создан и сохранён на устройстве Mac.

  11. Вернитесь на открытую страницу Apple Developer Center. В форме создания сертификата нажмите Choose File и загрузите с устройства созданный CSR-файл. Нажмите Continue.

  12. Далее появится страница, где будет отображена информация о новом APNs-сертификате (имя сертификата, дата окончания действия, тип сертификата и информация о создателе сертификата). Нажмите Download, чтобы загрузить его

  13. Откройте Keychain Access в разделе Login -> Certificates появится только что загруженный APNs-сертификат. Выберите его и нажмите Export.

  14. В форме экспорта укажите формат .p12.

  15. Нажмите Save. Далее Mac OS попросит вас подтвердить сохранение: в первой форме просто нажмите Enter, в следующей введите ваш пароль администратора и нажмите Allow.

Чтобы создать production-сертификат для вашего iOS-приложения, выполните пункты 6-14 этой инструкции, но в пункте 8 нажмите Create Certificate в секции Production SSL Certificate.

Внимание!

В систему можно загрузить сертификаты обоих типов, одновременно может быть включен только один тип уведомлений: либо dist, либо dev.

N.B.

После создания сертификата(ов), также убедитесь, что в проекте вашего iOS-приложения в Xcode включено Automatic signing, а в разделе Capabilities вашего проекта включены push-уведомления.

В версии Webim 10.1 стало возможным добавлять сертификаты APNs через интерфейс Консоли управления (см. Сертификаты).