# Обновление приложения без публикации в магазинах

Приложение МаркетПро обновляется автоматически, без новой публикации в App Store, Google Play и RuStore. Вы устанавливаете обновление решения на сайт, а через некоторое время приложение у покупателей получает изменения дизайна, интерфейса и функций.

Настраивать ничего не нужно: механизм включён на каждом сайте. Есть одно условие — приложение в магазинах должно быть собрано из версии решения, которая поддерживает такие обновления. Об этом ниже.

# Что обновляется автоматически, а что требует публикации

**Обновляется автоматически:** всё, что вы видите на экранах приложения, — вёрстка, стили, логика страниц, новые функции из обновлений решения и настройки, включённые в сборку.

**Требуют новой публикации в магазинах:** изменения нативной части приложения:

* иконка, заставка, название приложения;
* ключ Firebase для push-уведомлений — см. [Push-уведомления](/s/marketpro/doc/push-uvedomleniya-Sn63wxj2cI);
* файл `capacitor.config.json`;
* новые плагины, обновление Capacitor, новые разрешения.

Если в описании обновления решения сказано «требуется новая публикация приложения», значит, в нём меняется нативная часть. До публикации новой сборки приложение продолжит работать на прежней версии.

Товары, цены, баннеры, слайды и другое содержимое появляются в приложении сразу: оно получает их с сайта при каждом открытии.

# Одна обязательная публикация

Обновления получают только приложения, собранные из версии решения 26.09.2 или новее. Если ваше приложение в магазинах собрано раньше, один раз соберите и опубликуйте его заново — по обычной инструкции [Публикация приложений](/s/marketpro/doc/publikaciya-prilozhenij-0NoxDkjF8Y). Более ранние сборки не получают автоматические обновления, но продолжают работать.

Дальше публиковать приложение нужно только при изменениях нативной части.

# Как это работает

Каждый раз, когда сайт пересобирается — после установки обновления решения или после смены настроек, которые требуют пересборки, — сервер в фоне готовит обновление для приложения. Это занимает 5–10 минут после сборки сайта. Если по сравнению с прошлой сборкой в приложении ничего не изменилось, новое обновление не публикуется.

Приложение проверяет обновление при запуске и при возврате в него, но не чаще раза в 15 минут. Найденное обновление скачивается в фоне, а применяется **при следующем запуске**: посреди работы экран не перезагрузится.

Обновления раздаёт ваш сайт по адресу `https://<домен сайта>/app-updates/`. Сторонних сервисов нет, правка nginx не нужна, если он настроен по инструкции [Установка клиентской части решения](/s/marketpro/doc/ustanovka-klientskoj-chasti-resheniya-jXxzjn9JLA).

При многосайтовости у каждого сайта своя клиентская часть, и обновления готовятся для каждого сайта отдельно.

# Как проверить, что обновление пришло

Откройте в браузере `https://<домен сайта>/app-updates/latest.json`. Если обновление опубликовано, вы увидите короткий текст с полями `bundleId` и `publishedAt` — дата и время последней публикации.

 ![](https://docs.astdesign.ru/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzQ0Yjc4ZmY0LTFiMDYtNDFhOS04MmMyLWYzMjdmNDVhZWIwOS83ZjM4ZjEwZS1jM2ZlLTQwNmMtYWI5YS1kNjZhOTdjMmMxYjEvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTMyNjM1MDAsImV4cCI6MTc5MzM0OTkwMH0.mv83ih4OSSR8AZrF3_iP2lFkHRFqlEXiUO0_PH9KOUM " =499x245")

Подробнее — по SSH. Подключитесь к серверу и перейдите в папку клиентской части (обычно `/home/bitrix/www/frontend`):

```bash
cd /home/bitrix/www/frontend
npm run app:updates status
```

Команда покажет, какое обновление сейчас раздаётся, историю публикаций и последние строки журнала. Полный журнал — в файле `frontend/.app-updates/publish.log`.

Чтобы получить обновление на телефоне, откройте приложение — обновление скачается в фоне. Затем полностью закройте приложение и откройте снова.

# Если обновление не приходит

`**latest.json**` **отвечает «не найдено» (404)**

**Причина:** обновление ещё не собрано или сборка завершилась ошибкой.

**Решение:** подождите 10–15 минут после установки обновления решения. Если не появилось — посмотрите ошибку в `frontend/.app-updates/publish.log` и запустите сборку вручную в папке клиентской части:

```bash
npm run app:updates publish
```

`**latest.json**` **есть, а приложение не меняется**

**Причина:** приложение в магазинах собрано из версии решения без поддержки обновлений.

**Решение:** один раз соберите и опубликуйте приложение заново, см. [Публикация приложений](/s/marketpro/doc/publikaciya-prilozhenij-0NoxDkjF8Y).

**Обновление пришло, а после перезапуска приложение снова старое**

**Причина:** новая версия не запустилась на телефоне за 20 секунд. Приложение автоматически вернулось к предыдущей версии и больше не будет устанавливать это обновление.

**Решение:** напишите в [поддержку](mailto:support@astdesign.ru). Опубликовать обновление повторно можно командой `npm run app:updates publish -- --force`, но сначала нужно найти причину.

**Сменили домен сайта**

Уже установленные приложения ищут обновления по старому адресу. Старый домен должен продолжать отвечать — подойдёт и редирект на новый.

# Как откатить обновление

Если после обновления приложение работает с ошибками, верните предыдущую версию. Выполните по SSH в папке клиентской части:

```bash
cd /home/bitrix/www/frontend
npm run app:updates rollback
```

Приложения переключатся на предыдущую версию при следующем запуске. Откатанная версия сама больше не опубликуется, пока в сборке что-то не изменится.

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)