Альтернатива EAS Update: тот же клиент, другая оплата

EAS Update — собственный сервис обновлений Expo и эталонная реализация протокола Expo Updates. Otapush говорит на том же протоколе. Мы не будем убеждать вас, что наш сервис «лучше»: клиентская библиотека в вашем приложении в обоих случаях одна и та же, поэтому честное сравнение касается всего, что вокруг клиента, — аккаунтов, оплаты и цены перехода.

Когда правильный выбор — EAS Update

Оставайтесь на EAS, если всё это про вас:

  • вы можете оплачивать Expo картой, выпущенной за пределами России;
  • вам не нужна оплата в рублях и счёт от российского юрлица;
  • вам удобно получать сборки, отправку в сторы и обновления от одного поставщика.

EAS Update поддерживает та же команда, что поддерживает expo-updates, — надёжнее в этой нише не бывает. А поскольку Otapush использует тот же клиент, решение можно отложить: переход стоит одного URL и одной пересборки в обе стороны. Страница сравнения, которая этого не признаёт, врёт вам.

Чем Otapush отличается на самом деле

EAS Update Otapush
Клиентская библиотека expo-updates expo-updates
Протокол Expo Updates v1 Expo Updates v1
Аккаунт Expo нужен не нужен
Кто держит сервер обновлений Expo мы
Тарификация тарифы по MAU, дальше — доплата за превышение по факту MAU, лимит тарифа, без автоматических доплат
Оплата через Expo, в долларах США рубли: карта / СБП через эквайринг Т-Банка, счёт для юрлиц
Цена смены сервера один URL + одна пересборка один URL + одна пересборка

Всё сводится к трём строкам.

Оплата. Expo выставляет счета международно, в долларах США. Otapush принимает рубли через российский эквайринг, а юрлица могут оплатить по счёту — подробно в следующем разделе.

Аккаунт Expo не нужен. У Otapush свои аккаунты и свой CLI. Ничто в процессе — регистрация, публикация, откат — не касается сервисов Expo. Это и есть «expo-updates без EAS»: тот же клиент, независимый сервер.

Тот же клиент. Приложение сохраняет штатную библиотеку expo-updates, так что ни с одной стороны нет SDK, который придётся вырезать, и нет привязки к вендору: уход с EAS стоит одного URL, уход от нас — тоже одного URL.

Оплата из России

Почему это вообще проблема: с марта 2022 года карты Visa и Mastercard, выпущенные российскими банками, не работают для платежей за пределами России, а «Мир» зарубежные сервисы не принимают. Поэтому российская карта не проходит при оплате любой международной подписки — включая подписку Expo. Это свойство платёжных систем, а не недостаток EAS, и страница, которая подаёт это как недостаток, что-то вам продаёт.

Что принимаем мы:

Карты и СБП

Банковские карты (МИР, Visa, Mastercard российских банков) и СБП — Систему быстрых платежей — через эквайринг Т-Банка, в рублях. Данные карты вводятся на странице Т-Банка и до наших серверов не доходят. См. Тарифы и оплата.

Счёт для юрлиц

Тарифы Pro и Business можно оплатить по счёту на российский расчётный счёт. На странице «Оплата» вы выбираете плательщика «Юридическое лицо» и способ «Счёт»; сервер возвращает реквизиты, вы оплачиваете со счёта компании, и тариф активируется, когда платёж приходит.

Кассовые чеки (54-ФЗ)

При оплате картой формируется кассовый чек по 54-ФЗ — его выпускает эквайринг и отправляет на вашу почту. Данные для чека входят в каждый платёж, который мы инициируем, а не добавляются задним числом.

Переход с EAS Update

Клиент остаётся, меняется только сервер. Поскольку URL обновлений и сертификат подписи вкомпилированы в бинарник, переезд стоит ровно одного релиза в сторе.

  1. Создайте приложение в Otapush. Зарегистрируйтесь в портале (аккаунт Expo не нужен), создайте приложение, затем выполните в проекте otapush login и otapush init. Команда init прописывает блок updates — наш URL, вашу runtime version и сертификат подписи — в app.json для managed-проектов или в AndroidManifest.xml и Expo.plist для bare. Подробности в настройке Expo.
  2. Зарегистрируйте идентификатор устройства. Otapush считает MAU по устройствам, поэтому сервер требует стабильный deviceId, которого EAS не требовал. Это один вызов при запуске — Updates.setExtraParamAsync("deviceid", id); готовый фрагмент кода есть в настройке Expo.
  3. Пересоберите один раз и выкатите в сторы. expo prebuild --clean, затем обычная локальная релизная сборка (./gradlew assembleRelease или Release-архив в Xcode) — EAS Build не нужен. Уже установленные копии приложения продолжат получать обновления с EAS, пока пользователи не получат эту сборку из стора, поэтому не публикуйте ничего рискованного, пока проникновение новой версии не достигнет нужного уровня.
  4. Публикуйте. otapush publish --channel prod --platform ios (или android). Каналы, перевод сборки между ними и откат работают так, как описано в быстром старте.

Возврат на EAS позже — та же операция с обратным URL. Эта симметрия и есть смысл общего протокола.

Модели тарификации, а не ценники

Обе стороны тарифицируют по MAU — уникальным устройствам, которые за календарный месяц проверили или скачали обновление. На публичной странице цен Expo указаны тарифы с лимитами MAU и доплатой за превышение по факту использования (expo.dev/pricing, проверено 28 августа 2026 года); наши лимиты и цены — в разделе тарифов и на странице Тарифы и оплата. Мы сознательно не приводим здесь цифры EAS: цены вендоров меняются, а устаревшая цифра в сравнении хуже, чем её отсутствие. Сравнивайте по своему числу устройств.

Одно поведенческое отличие стоит сформулировать прямо: превышение лимита Otapush никогда не останавливает обновления. Сервер продолжает раздавать проверки, загрузки и установки; портал показывает предупреждение и предлагает перейти на старший тариф. Это свойство кода раздачи, а не обещание в правилах: в обработчике манифеста нет проверки лимита.

Вопросы

Otapush лучше, чем EAS Update?

Нет — он отличается по конкретным осям, перечисленным выше. Протокол и клиентская библиотека одинаковые; меняется то, кто держит сервер, нужен ли аккаунт Expo и как вы платите. Если ни одна из этих осей вас не задевает, EAS — разумный выбор по умолчанию.

EAS не принимает российскую карту. Что делать?

Карту отклоняет не EAS: российские Visa и Mastercard в принципе не работают для международных платежей, а «Мир» за рубежом не принимают. Варианта два: карта или юрлицо за пределами России — или сервис с оплатой в рублях. Otapush — второй вариант: карты и СБП через российский эквайринг, счета для юрлиц.

Как оплатить подписку Expo из России?

Картой, выпущенной за пределами России, или через иностранное юрлицо — тогда оплата Expo работает как обычно. Без этого поддерживаемого способа нет, и именно для этой ситуации существует наш сервис. Если вы остаётесь на EAS с зарубежной оплатой, в приложении менять ничего не нужно: клиент там тот же, что и у нас.

Нужен ли аккаунт Expo для Otapush?

Нет. Регистрация, CLI, публикация и откат живут в Otapush. expo-updates — открытая клиентская библиотека; для её использования нужен не аккаунт Expo, а сервер, говорящий на её протоколе.

Можно ли вернуться на EAS позже?

Да, и это стоит столько же, сколько стоил уход: вернуть updates.url, пересобрать один раз, выкатить в сторы. Мы считаем это преимуществом. Сервис, из которого нельзя уйти, — сервис, в который не стоит входить; тот же аргумент мы приводим на странице замены CodePush.

Что будет при превышении лимита MAU?

Ничего не остановится. Обновления продолжат раздаваться, портал покажет предупреждение и предложит перейти на старший тариф, а новый лимит после оплаты применится к текущему месяцу. Автоматических доплат за превышение нет.

Выпустите первое OTA-обновление сегодня

Бесплатный тариф — 10 MAU, то есть уникальных устройств в месяц. Карта не нужна.