# Подключение нескольких приложений

К одному аккаунту **Webim** может быть подключено несколько мобильных приложений (2 и более) как на **Android**, так и на **iOS**. Ниже описан порядок подключения дополнительных приложений.

## Подключение нескольких Android-приложений

К одному проекту **Firebase** можно привязать несколько Android-приложений. Так как ключ **FCM API KEY** относится к проекту в целом, то все приложения, добавленные в проект, смогут получать push-уведомления по этому ключу. Чтобы привязать дополнительные Android-приложения, достаточно выполнить следующее:

  1. Откройте страницу вашего проекта в **Firebase**.

  1. Рядом с уже созданным приложением нажмите кнопку **Add app**.

    ![Добавление приложения в консоль Firebase](https://webim.ru/kb/img/mobile/push-notifications/adding-app-to-firebase.webp)

  1. Выберите платформу **Android**.

    ![Выбор Android-приложения в Firebase](https://webim.ru/kb/img/mobile/push-notifications/choosing-android-app.webp)

!!! Note "N.B."

    * В рамках проекта **Firebase** можно добавить приложение в том числе и на платформе **iOS**, но в этом случае push-уведомления не будут приходить на устройства, где установлено такое приложение, так как сервис **Webim** не поддерживает данную функциональность.

    * Все Android-приложения, которые подключены к одному аккаунту **Webim**, должны быть привязаны к одному проекту в **Firebase**. Получение push-уведомлений на приложения, привязанные к разным проектам **Firebase**, не предусмотрено.

    * При наличии у посетителя нескольких устройств push-уведомление придет на каждый из них последовательно и в том порядке, в котором были вызовы метода `push_visitor`, поэтому для одной и той же сессии `order_importance_key` должен быть всегда одним и тем же. Кроме этого, нужно, чтобы одновременно было не более заданного количества потоков, которые заняты отправкой push-уведомлений посетителю, поэтому необходимо ограничить количество возможных значений для `order_importance_key`.

## Подключение нескольких iOS-приложений

Для подключения дополнительных iOS-приложений в **Apple Developer Center** требуется создать новый **App ID** и получить сертификаты APNs в формате `.p12` (см. инструкцию) для каждого дополнительного приложения, после чего обратиться в [техническую поддержку](mailto:support@webim.ru) и предоставить эти сертификаты. Далее сотрудники **Webim** с помощью этих сертификатов настроят отправку push-уведомлений для всех дополнительно привязанных приложений на вашем аккаунте.

  1. Создайте файлы `cert` и `private_key` из файла p12 (для production и sandbox должны быть сгенерированы отдельные ключи, первые параметры dist или dev соответственно) с помощью следующего скрипта:

    prepare_cert.sh
    ```
    if ! (test "$1" == "dist" || test "$1" == "dev")
    then
    echo 'First argument must be dev or dist'
    echo 'Example: prepare_certs.sh dist 1.p12 password'
    exit 0
    fi
    openssl pkcs12 -in $2 -passin pass:"$3" -clcerts -nokeys -out ios_push_cert.$1.pem
    openssl pkcs12 -in $2 -passin pass:"$3" -nocerts -out privateKey.pem -passout pass:"12345"
    openssl rsa -in privateKey.pem -passin pass:"12345" -out ios_push_private_key.$1.pem
    rm privateKey.pem
    ```

    У вас должны получиться файлы следующего вида:

      * `ios_push_cert.dist.pem` и `ios_push_private_key.dist.pem` для production-сертификата

      * `ios_push_cert.dev.pem` и `ios_push_private_key.dev.pem` для sandbox-сертификата


  1. Зайдите на сервер приложений **Webim**, перейдите в директорию /var/pro/client-data/cd/'account_name'/ios-certs/ и создайте в ней поддиректорию с названием 'newapp', где 'newapp' – это название нового приложения. Название должно быть задано латинскими буквами без пробелов и других знаков, например, `newapp`.

  1. Поместите сертификат в созданную вами директорию.

  1. Создайте пользователя и выдайте ему права для использования директории и файлов с сертификатом, чтобы Chat Backend мог иметь к ним доступ.

  1. Push-токены должны приходить в формате `'newapp'_'token'`. Пример push-токена может выглядеть так: newapp_1a6f32014a1a6f32014a1a6f32014a1a6f32014a1a6f32014a.

---

Источник: https://webim.ru/kb/mobile/push-notifications/push-notifications-multiple-apps.html
