React Native Codepush — исключение изображений для определенных выпусков

Наши пакеты релизов огромны (~ 50 МБ), а клиенты занимают ок. 1-2 минуты для загрузки обновления с codepush.

В основном мы просто обновляем пакеты js, есть ли способ просто обновить пакет js без повторной загрузки всех ресурсов изображений?

Я прочитал здесь, что сервер выполняет файлы diff, но, похоже, это не работает в моем случае: регистрация RemotePackage.packageSize из checkForUpdate на клиентах показывает точный размер пакета JS + изображения, несмотря на то, что я изменил только код JS.

Могу ли я что-нибудь с этим сделать?


person tropicalfish    schedule 07.03.2018    source источник


Ответы (1)


Серверная часть CodePush должна обслуживать только полное содержимое до момента завершения создания zip-файла различий. В бэкенде ваш пакет загружается, извлекается и анализируется на наличие разных файлов. Любые новые/обновленные/удаленные файлы согласовываются, помещаются в другой zip-архив и отправляются обратно в серверную часть, чтобы пользователи получали именно его, а не исходный, который вы выпустили. Если вы видите полную загрузку, это либо потому, что серверная часть все еще работает над обработкой различий, либо внутри вашего пакета есть различия.

Я бы попытался сделать релиз, подождать 10 минут и проверить, загружает ли он все еще полный пакет. Если это так, было бы лучше связаться со службой поддержки для более глубокого погружения. Насколько я могу судить, пакеты обрабатываются правильно, практически без ошибок, и я провел быстрый тест, который дал мне правильные результаты.

person Patrick Nikoletich    schedule 08.03.2018