Ваша логика верна ... если вы "управляете версиями" активов за пределами APK, вам нужно отслеживать "версию" локальных ресурсов по сравнению с сервером | удаленными ресурсами изагружать / кэшировать новые ресурсы, когда удаленные ресурсы более новые ...
Вы можете использовать файлы расширения APK (* .obb) для объединения ваших "активов" отдельно от пакета .apk.Но в любое время вам нужно изменить .obb
(даже если это основанная на патче .obb
) версия приложения должна измениться, и, следовательно, вы должны загрузить .apk
с новой версией в магазин, даже если ничего другогов нем изменилось.
re: Файлы расширения APK
Новый формат .aab
(замена .apk
) позволяет изменять отдельные компоненты приложения.и, таким образом, пользователь получает истинную разницу между установленными им изменениями и новыми изменениями, приводящими к очень маленьким размерам обновлений.Как и в случае .obb, версия приложения должна измениться, и, таким образом, должна быть загружена новая .aab
.
Примечание. В настоящее время Xamarin не поддерживает прямое создание пакетов .aab
(как это делает Android Studio), но их можно «изготовить вручную» из артефактов MSBuild.
re: Пакеты приложений Android
Лично для сценариев, подобных вашему, я просто использую одну версию .zip
, которая включает все файлы, которые могут динамически изменяться между уровнями приложенияversion | Release и, таким образом, отслеживает только этот файл (распаковка в локальный кеш приложения при загрузке).Файл версии (или просто хэш-файл) на сервере содержит последнюю версию и URL-адрес zip-файла, а сам zip-файл содержит соответствующий файл версии.Нет кэшированных файлов, скачайте и распакуйте файл.После проверки обновления приложения сравните файл версии в кэше с версией сервера и, при необходимости, загрузите / распакуйте.(Примечание: я не даже использую отдельную "семантическую версию", я просто использую хэш SH1 zip-файла).