CodePush

CodePush — это облачная служба Центра приложений, которая позволяет разработчикам React Native развертывать обновления мобильных приложений непосредственно на устройствах своих пользователей. Он работает в качестве центрального репозитория, в который разработчики могут публиковать определенные обновления (например, JS, HTML, CSS и изменения изображений), а приложения могут запрашивать обновления (с помощью предоставленных клиентских пакетов SDK). Это позволяет иметь более детерминированную и прямую модель взаимодействия с конечными пользователями, устраняя ошибки, добавляя небольшие функции, которые не требуют перестроения двоичного файла или распространения через любые общедоступные магазины приложений. Все React Native приложения, созданные в Центре приложений, по умолчанию включены в CodePush. Чтобы начать использовать CodePush, вам потребуется выполнить следующие действия.

Примечание

Для устройств Android CodePush будет работать только на устройствах, совместимых с TLS 1.2

Примечание

Использование API CodePush имеет ограничение скорости в 70 запросов в секунду. Они учитываются в соответствии со следующим сочетанием: запрошенная конечная точка, IP-запрос поступает из ключа развертывания и уникального идентификатора клиента. Если достигнуто ограничение, возвращается ответ с кодом состояния 429:

{
   "statusCode": 429,
   "message": "Rate limit is exceeded. Try again in 1 seconds."
}

1. Установка интерфейса командной строки Центра приложений

Вы управляете большинством функциональных возможностей CodePush с помощью интерфейса командной строки Центра приложений. Чтобы установить CLI, откройте окно терминала или командную строку и выполните следующую команду:

npm install -g appcenter-cli

Примечание

При обнаружении EACCES ошибки при выполнении этой команды может потребоваться исправить разрешения npm в системе. Многие сайты рекомендуют использовать команду для обхода sudo этой ошибки, но никогда не следует устанавливать модули npm с помощью sudo.

После успешной установки интерфейса командной строки Центра приложений appcenter login выполните команду, чтобы настроить ИНТЕРФЕЙС командной строки для сведений об учетной записи Центра приложений.

2. CodePush-ify ваше приложение

Добавьте клиентский пакет SDK CodePush в приложение и настройте его для извлечения обновлений приложений из одного из развертываний в Центре приложений. В следующих разделах содержатся сведения о том, как это сделать для поддерживаемых платформ приложений:

3. Выпуск обновления приложения

После внесения изменений в код или ресурсы приложения опубликуйте обновление в Центре приложений с помощью интерфейса командной строки Центра приложений, как описано в следующих разделах.

React Native

Выполните команду CLI release-react Центра приложений, чтобы объединить файлы кода и ресурсов приложения, а затем опубликовать их на сервере Центра приложений в качестве нового выпуска. Пример:

appcenter codepush release-react -a <ownerName>/MyApp

Cordova

Выполните команду CLI release-cordova Центра приложений, чтобы объединить файлы кода и ресурсов приложения, а затем опубликовать их на сервере Центра приложений в качестве нового выпуска. Пример:

appcenter codepush release-cordova -a <ownerName>/MyApp

Совет

Одна из важных функций в интерфейсе командной строки Центра приложений — возможность задать приложение в качестве текущего приложения с помощью appcenter apps set-current <ownerName>/<appName>. Задав приложение в качестве текущего приложения, вам не нужно использовать -a флаг. Например, команду appcenter codepush deployment list -a <ownerName>/<appName> можно ввести, как appcenter codepush deployment list если бы задано текущее приложение. Вы можете проверить, какое приложение задано в качестве текущего приложения вашей учетной записи, с помощью appcenter apps get-current. Использование этой команды делает большую часть команд CLI короче.

4. Запуск приложения

После выполнения этих действий все пользователи, на которых запущено приложение, получат обновление с помощью интерфейса, настроенного на шаге 2. Дополнительные сведения см. в документации по CLI и клиентскому пакету SDK (Apache Cordova, React Native).