Запускаются ли OTA-обновления в Expo при первом открытии после новой загрузки из магазинов?

Я разработал приложение с помощью React Native и распространял его с помощью Expo. Я опубликовал окончательную версию в Google Play и Apple Store.

Некоторое время спустя я обнаружил в Документы Expo по издательскому делу, что expo publish позволяет создавать обновления OTA («по воздуху»), которые встроены в Expo и автоматически обновляют приложение, согласно этот ответ:

The standalone app knows to look for updates at your app's published url.

Это я проверил и работал очень хорошо.

Однако теперь я вижу, что люди, загружающие приложение из магазинов (то есть Google Play или Apple Store), по-видимому, получают начальную версию приложения, а не обновленную.

Каков точный рабочий процесс для обновлений OTA? Идут ли они и «заменяют» существующую версию в Google Play и Apple Store при первом открытии? Или им нужно открыть его снова, чтобы получить обновление?

И что именно вызывает обновление приложения?

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
13
0
4 788
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У нас были похожие проблемы. Я вижу две вещи, которые могут быть причиной этого в вашем случае:

  • Отметьте app.json, если updates.fallbackToCacheTimeout установлен. Если он установлен, это время, в течение которого expo будет пытаться загрузить последнее обновление, прежде чем отобразить последнюю загруженную версию (которая будет начальной версией после начальной загрузки).
  • Если у вас есть большое обновление, expo попытается загрузить обновление в течение 30 секунд, прежде чем показать последнюю версию вашего приложения.

Проверьте здесь для получения дополнительной информации: https://docs.expo.io/versions/latest/guides/configuring-ota-updates/

Обновления OTA не заменяют версию, загруженную из магазина приложений, они сначала сохраняются в кеше устройства, а затем запускаются при запуске приложения после загрузки. Источник https://docs.expo.io/versions/latest/sdk/updates/

Загрузка обновлений автоматически запускается при запуске приложения, затем, в зависимости от настроек, оно либо будет ждать (насколько позволяет updates.fallbackToCacheTimeout) перед отображением приложения, либо покажет его немедленно.

Вы можете заставить приложение запустить последнее обновление (если оно у вас есть), просто принудительно выйдя из приложения, а затем перезапустив его.

Надеюсь это поможет!

О, круто! Я установил updates.fallbackToCacheTimeout на 0, что в вашей ссылке я прочитал как Это позволит вашему приложению немедленно запускаться с кешированным пакетом при загрузке более нового пакета в фоновом режиме для будущего использования..

fedorqui 'SO stop harming' 10.04.2019 12:13

Итак, чтобы прояснить мне (я новичок в этом мире Expo): новый пользователь, который только что загрузил приложение из магазина приложений или Google Play, получит обновленную версию после, они запустят ее один раз и принудительно закроют один раз? Будет ли какая-либо настройка позволять обновленной версии появляться при первом открытии приложения?

fedorqui 'SO stop harming' 10.04.2019 12:14

Это была и наша проблема :) Точно! Если вы хотите, чтобы у людей была последняя версия (после загрузки из магазина приложений или Google Play), удалите updates.fallbackToCacheTimeout или установите что-то разумное (30 секунд — это долгое время для запуска приложения).

Jacob Sievers 10.04.2019 12:17

Итак, с моим текущим значением 0 обновление запускается в фоновом режиме и будьте готовы в следующий раз... По вашему опыту, какое значение находит лучший баланс между двумя вещами (убедитесь, что обновление загружено, но не раздражайте пользователя). слишком долго бегать)?

fedorqui 'SO stop harming' 10.04.2019 12:32

На самом деле я особо не экспериментировал. Мы просто удалили его, чтобы убедиться, что люди в максимально возможной степени используют последнюю версию. Если это не так важно для вас, я бы, вероятно, установил его примерно на 15 секунд, чтобы убедиться, что он делает «честную попытку» получить последнюю версию, независимо от того, насколько плохим может быть соединение.

Jacob Sievers 10.04.2019 13:16

Я не видел этого в списке ограничений OTA в документации Expo, но, на всякий случай, исходя из вашего опыта, вы смогли отправить update.fallbackToCacheTimeout изменения OTA? (без отправки нового бинарника, очевидно)

Jared 29.08.2019 17:57

@Jared Вы должны иметь возможность изменить все, что не указано в ограничениях (docs.expo.io/versions/v34.0.0/workflow/publishing/#limitati‌​ons). Конечно, обновление до updates.fallbackToCacheTimeout не будет применяться до тех пор, пока пользователь не выполнит обновление OTA (со старыми настройками).

Jacob Sievers 12.09.2019 13:17

@Jared Да, вы можете отправить fallbackToCacheTimeout через OTA. поток будет 1- изменить fallbackToCacheTimeout. 2-опубликовать. 3- перезапустите приложение как обычно. 4- Теперь опубликованы все новые изменения 5- Просто откройте приложение, чтобы увидеть изменения

Furquan 05.08.2020 11:27

Это очень плохая формулировка. Я думал, что приложение должно запускаться во время загрузки обновлений, а затем перезапускаться.

Ali Mert Cakar 17.06.2021 11:53

Другие вопросы по теме