Push-уведомления об обновлениях приложений

improve this page | report issue

Обзор

Клиент Application Center можно настроить для выдачи push-уведомлений, указывающих на появление в магазине обновлений для приложения.

Администратор Application Center может использовать push-уведомления для автоматической отправки уведомлений на устройства iOS и Android. Уведомления отправляются в случае появления обновлений избранных приложений, а также в случае развертывания на сервере Application Center новых приложений из числа рекомендуемых.

Процесс выдачи push-уведомлений

Push-уведомления выдаются на устройстве, если выполнены следующие условия:

  • Application Center установлен на устройстве и запущен по крайней мере один раз.
  • Пользователь не выключил push-уведомления на устройстве для Application Center на странице Параметры → Уведомления.
  • Пользователь обладает правами на установку приложения. Такие права доступа настраиваются с помощью Application Center.
  • Приложение отмечено как рекомендуемое или предпочитаемое для пользователя, использующего Application Center на этом устройстве. Эти флаги указываются автоматически, когда пользователь устанавливает приложение с помощью Application Center. Предпочитаемые приложения можно просмотреть на вкладке Избранные в Application Center на устройстве.
  • Приложение не установлено на устройстве или установлена не последняя версия приложения.

При первом запуске клиента Application Center на устройстве пользователю может быть предложено принять входящие push-уведомления. Это относится к мобильным устройствам iOS. Если служба выключена на уровне мобильного устройства, push-уведомления не будут работать.

iOS и современные версии операционной системы Android предлагают способ включения и выключения этой службы для отдельных приложений.

За инструкциям по настройке push-уведомлений на мобильном устройстве обратитесь к документации по устройству.

Перейти к

Настройка push-уведомлений об обновлениях приложений

Для подключения к внешним серверам push-уведомлений необходимо настроить идентификационные данные или сертификаты служб Application Center.

Настройка планировщика сервера Application Center

Планировщик сервера - это фоновая служба, которая отвечает за запуск и остановку сервера в автоматическом режиме. Планировщик обеспечивает регулярную очистку стека, который автоматически заполняется при выполнении администратором действий, требующих отправки push-уведомлений. По умолчанию пакеты push-уведомлений отправляются с интервалом 12 часов. При необходимости значение по умолчанию можно изменить с помощью переменных среды сервера ibm.appcenter.push.schedule.period.amount и ibm.appcenter.push.schedule.period.unit.

В переменной ibm.appcenter.push.schedule.period.amount указывается целое число. В переменной ibm.appcenter.push.schedule.period.unit можно указать секунды, минуты или часы. Если единицы измерения не указаны, то интервал указывается в часах. Эти переменные задают время между двумя пакетами push-уведомлений.

Эти переменные можно указать с помощью свойств JNDI.

Важная информация: в рабочей среде не рекомендуется указывать секунды в качестве единиц измерения. Чем меньше время, тем выше нагрузка на сервер. Секунды рекомендуется выбирать в качестве единиц измерения только в целях тестирования и оценки. Например, если указан интервал 10 секунд, то push-уведомления отправляются практически немедленно.

Дополнительная информация о настраиваемых свойствах приведена в разделе Свойства JNDI для Application Center.

Пример для сервера Apache Tomcat

Укажите переменные с помощью свойств JNDI в файле server.xml:

<Environment name="ibm.appcenter.push.schedule.period.unit" override="false" type="java.lang.String" value="hours"/>
<Environment name="ibm.appcenter.push.schedule.period.amount" override="false" type="java.lang.String" value="2"/>

WebSphere Application Server v8.5

Для настройки переменных JNDI для WebSphere Application Server v8.5 выполните следующие действия:

  1. Выберите Приложения → Типы приложений → Приложения предприятия Websphere.
  2. Выберите приложение Application Center Services.
  3. Выберите Свойства веб-модуля → Записи среды для веб-модулей.
  4. Измените строку в столбце Значение.

WebSphere Application Server Liberty Profile

Дополнительная информация о настройке переменных JNDI для WebSphere Application Server Liberty Profile приведена в разделе Применение привязок JNDI для констант из файлов конфигурации сервера.

Оставшиеся действия по настройке службы push-уведомлений зависят от производителя устройства, на котором установлено целевое приложение.

Настройка сервера Application Center для подключения к Google Cloud Messaging

Для того чтобы включить поддержку Google Cloud Messaging (GCM) в приложении, необходимо связать службы GCM с учетной записью Google разработчика с поддержкой API Google. Дополнительная информация приведена на веб-странице Начало работы с GCM.

Важная информация: клиент Application Center без Google Cloud Messaging: работа Application Center зависит от API Google Cloud Messaging (GCM). Этот API может отсутствовать на устройствах в некоторых странах, таких как Китай. В этом случае можно скомпоновать версию клиента Application Center без использования API GCM. В такой версии клиента Application Center не будут работать push-уведомления. Дополнительная информация приведена в разделе Компоновка версии мобильного клиента без зависимости от API GCM.

  1. При необходимости создайте учетную запись Google для клиента Application Center в соответствии с инструкциями, приведенными на веб-странице Создание учетной записи Google.
  2. Зарегистрируйте учетную запись с помощью API Google в консоли API Google. В ходе регистрации создается новый проект по умолчанию, имя которого можно изменить. Имя проекта GCM не связано с именем проекта приложения Android. После создания проекта ИД проекта GCM добавляется в конец URL проекта. Запишите номер в конце URL в качестве ИД проекта для дальнейшего использования.
  3. Включите службу GCM для проекта; в консоли API Google перейдите на вкладку Службы и включите службу “Google Cloud Messaging for Android” в списке служб.
  4. Убедитесь, что для приложения создан ключ сервера Simple API Access.
    • Выберите вертикальную вкладку Доступ к API в левой части консоли.
    • Создайте ключ сервера Simple API Access или запишите сведения о ключе по умолчанию (если он уже создан). Два других типа ключей на этом этапе не представляют интереса.
    • Сохраните ключ сервера Simple API Access, поскольку он потребуется в будущем для работы с GCM. Ключ API Google содержит приблизительно 40 символов; далее его потребуется указать на стороне сервера.
  5. Введите ИД проекта GCM в качестве свойства строкового ресурса в проекте JavaScript клиента Application Center для Android; в файле шаблона IBMAppCenter/apps/AppCenter/common/js/appcenter/config.json укажите в этой строке собственное значение:

    gcmProjectId:""// требуется ИД проекта API Google (имя проекта = com.ibm.appcenter) ID для push-уведомлений Android.
    // пример: 123456789012
    
  6. Зарегистрируйте ключ API Google в качестве свойства JNDI для сервера Application Center. Имя ключа: ibm.appcenter.gcm.signature.googleapikey. Например, для сервера Apache Tomcat этот ключ можно настроить в качестве свойства JNDI в файле server.xml:

    <Context docBase="AppCenterServices" path="/applicationcenter" reloadable="true" source="org.eclipse.jst.jee.server:AppCenterServices">
         <Environment name="ibm.appcenter.gcm.signature.googleapikey" override="false" type="java.lang.String"
         value="AIxaScCHg0VSGdgfOZKtzDJ44-oi0muUasMZvAs"/>
    </Context>
    

    Свойство JNDI должно быть задано в соответствии с требованиями сервера приложений.
    Дополнительная информация о настраиваемых свойствах приведена в разделе Свойства JNDI для Application Center.

Важная информация:

  • Если GCM применяется в более ранних версиях Android, то устройство может потребоваться связать с существующей учетной записью GCM. См. веб-страницу Служба GCM: “Применяется существующее соединение для служб Google. На устройствах до версии 3.0 пользователи должны настроить учетные записи Google на своих мобильных устройствах. Учетная запись Google не является требованием на устройствах, работающих под управлением Android 4.0.4 и выше.”
  • Кроме того, для работы push-уведомлений брандмауэр должен разрешать подключение к адресу android.googleapis.com через порт 443.

Настройка сервера Application Center для подключения к службе push-уведомлений Apple

Настройте проект iOS для поддержки службы push-уведомлений Apple (APNs). Убедитесь, что сервер Application Center обладает доступом к следующим серверам.

Серверы разработки
gateway.sandbox.push.apple.com:2195 feedback.sandbox.push.apple.com:2196

Рабочие серверы
gateway.push.apple.com:2195 feedback.push.apple.com:2196

Для успешной настройки служб push-уведомлений Apple (APNs) в проекте вы должны быть зарегистрированным разработчиком Apple. За отправку запросов на активацию APNs отвечает администратор компании. Ответ на запрос должен содержать профиль обеспечения с поддержкой APNs для комплекта приложения iOS; это строковое значение, которое указывается на странице конфигурации проекта Xcode. Профиль обеспечения применяется для создания файла сертификата подписи. Предусмотрены профили обеспечения двух типов: профили разработки и рабочие профили, предназначенные для сред разработки и рабочих сред. Профили разработки связаны только с серверами APNs разработки Apple. Рабочие профили связаны только с рабочими серверами APNs Apple. Обратите внимание, что эти серверы предлагают разные уровни QoS.

Примечание: устройства, которые подключены к беспроводной сети компании и находятся за брандмауэром, могут получать push-уведомления только в том случае, если брандмауэр не запрещает подключение к адресу следующего типа.

x-courier.sandbox.push.apple.com:5223
Где x - это целое число.

  1. Получите профиль обеспечения с поддержкой APNs для проекта Xcode Application Center. Результат запроса активации APNs администратора отображается на веб-странице https://developer.apple.com/ios/my/bundles/index.action. Каждый элемент в списке указывает, поддерживает ли профиль APNs. Для загрузки и установки профиля в каталоге проекта Xcode клиента Application Center дважды щелкните на профиле. Профиль автоматически устанавливается в хранилище ключей и проекте Xcode.

  2. Для тестирования и отладки Application Center в среде XCode на устройстве откройте окно “Xcode Organizer”, выберите “Профили обеспечения” и установите профиль на мобильном устройстве.

  3. Создайте сертификат подписи, применяемый службами Application Center для защиты взаимодействия с сервером APNs. С помощью этого сертификата сервер подписывает все запросы push-уведомлений, отправляемые серверу APNs. Сертификат подписи создается на основе профиля обеспечения.

  • Откройте утилиту “Keychain Access” и выберите категорию Мои сертификаты на левой панели.
  • Найдите сертификат, который требуется установить, и откройте его содержимое. Отображаются сертификат и частный ключ; строка сертификата Application Center содержит комплект приложения Application Center com.ibm.imf.AppCenter.
  • Выберите Файл → Экспортировать элементы, чтобы выбрать сертификат и ключ для экспорта в формате обмена персональной информацией (.p12). Файл .p12 содержит личный ключ, необходимый для согласования безопасного соединения при подключении к серверу APNs.
  • Скопируйте сертификат .p12 на компьютер, отвечающий за запуск служб Application Center, и установите его. Файл сертификата и пароль необходимы для создания защищенного туннеля с сервером APNs. Кроме того, требуется указать тип применяемого сертификата: сертификат разработки или рабочий сертификат. Профиль обеспечения разработки создает сертификат разработки, а рабочий профиль создает рабочий сертификат. Веб-приложение служб Application Center использует свойства JNDI для обращения к защищенным данным.

В следующей таблице приведены примеры свойств JNDI из файла server.xml сервера Apache Tomcat.

Свойство JNDI Тип и описание Пример для сервера Apache Tomcat
ibm.appcenter.apns.p12.certificate.location Полный путь к сертификату .p12 в виде строкового значения. <Environment name="ibm.appcenter.apns.p12.certificate.location" override="false" type="java.lang.String" value="/Users/someUser/someDirectory/apache-tomcat/conf/AppCenter_apns_dev_cert.p12"/>
ibm.appcenter.apns.p12.certificate.password Пароль, необходимый для доступа к сертификату, в виде строкового значения. <Environment name="ibm.appcenter.apns.p12.certificate.password" override="false" type="java.lang.String" value="this_is_a_secure_password"/>
ibm.appcenter.apns.p12.certificate.isDevelopmentCertificate Булевское значение (true или false), которое позволяет указать, что сертификат идентификации был создан с помощью профиля обеспечения разработки. <Environment name="ibm.appcenter.apns.p12.certificate.isDevelopmentCertificate" override="false" type="java.lang.String" value="true"/>

Дополнительная информация о настраиваемых свойствах JNDI приведена в разделе Свойства JNDI для Application Center.

Компоновка версии мобильного клиента без зависимости от API GCM

Вы можете удалить зависимость от API Google Cloud Messaging (GCM) из версии Android клиента, чтобы обеспечить соблюдение нормативных требований некоторых стран. В такой версии клиента push-уведомления не работают.

Работа Application Center зависит от API Google Cloud Messaging (GCM). API может отсутствовать на устройствах в некоторых странах, таких как Китай. В этом случае можно скомпоновать версию клиента Application Center без использования API GCM. В такой версии клиента Application Center не будут работать push-уведомления.

  1. Убедитесь, что push-уведомления выключены с помощью следующей строки в файле IBMAppCenter/apps/AppCenter/common/js/appcenter/config.json: "gcmProjectId": "" ,.
  2. Из двух мест в файле IBMAppCenter/apps/AppCenter/android/native/AndroidManifest.xml удалите все строки между следующими комментариями: <!-- AppCenter Push configuration --> и <!-- end of AppCenter Push configuration -->.
  3. Удалите класс IBMAppCenter/apps/AppCenter/android/native/src/com/ibm/appcenter/GCMIntenteService.java.
  4. В Eclipse выполните команду “Скомпоновать среду Android” в папке IBMAppCenter/apps/AppCenter/android.
  5. Удалите файл IBMAppCenter/apps/AppCenter/android/native/libs/gcm.jar, созданный модулем MobileFirst в ходе выполнения команды “Скомпоновать среду Android”.
  6. Обновите созданный проект IBMAppCenterAppCenterAndroid с учетом удаления библиотеки GCM.
  7. Создайте файл .apk для Application Center.

Библиотека gcm.jar автоматически добавляется модулем Eclipse MobileFirst каждый раз при компоновке среды Android. Таким образом, этот файл архива java следует удалять из каталога IBMAppCenter/apps/AppCenter/android/native/libs/ после каждого запуска процесса компоновки Android MobileFirst. В противном случае библиотека gcm.jar будет входить в состав файла appcenter.apk.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on August 17, 2020