При использовании наборов приложений существует риск того, что пользователь загрузит настроенный APK на несовместимое устройство. Это может привести к сбою, так как требуемые плотности/языки не будут присутствовать.
Чтобы решить эту проблему, в Google Play Core есть удобная функция MissingSplitsManager
. Это показывает пользователю полезную ошибку при запуске вместо сбоя. Все, что нужно сделать, это добавить в класс приложения следующее:
override fun onCreate() {
if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {
return
}
super.onCreate()
}
Эту проверку очень легко реализовать, и подробные инструкции ранее были доступны по адресу https://developer.android.com/guide/app-bundle/sideload-check. Есть ссылки на это повсюду, например. в выпуске Realm или вверху документацию по MissingSplitsManager.
Однако эта ссылка теперь перенаправляет в раздел «Известные проблемы» с очень расплывчатой информацией:
Частичная установка неопубликованных приложений, то есть приложений, установленных не через Google Play Store и не имеющих одного или нескольких обязательных разделенных APK-файлов, завершается сбоем на всех сертифицированных Google устройствах и устройствах под управлением Android 10 (уровень API 29) или выше. При загрузке вашего приложения через Google Play Store Google гарантирует, что установлены все необходимые компоненты приложения.
Итак, что случилось? Почему простая проверка библиотеки больше не упоминается даже в документации библиотеки.
Возможно, есть какая-то недокументированная проблема с библиотекой? Возможно, Google вообще не хочет помогать боковой загрузке?