Вы, скорее всего, недавно получили электронное письмо от Google Play Store, содержащее следующее:
Обновите вашу зависимость Maven Play Core до версии, совместимой с Android 14! Ваша текущая библиотека Play Core несовместима с targetSdkVersion 34 (Android 14), что introduce a backward-incompatible change to broadcast receivers to improve user security. как напоминание, с 31 августа Google Play требует, чтобы все новые выпуски приложений направлялись на Android 14. Обновитете зависимость最新 Play Core library version dependency, чтобы избежать крашек приложений: https://developer.android.com/guide/playcore#playcore-migration
Вы, возможно, не сможете выпустить будущие версии вашего приложения с этой версией SDK в продукцию или открытые тесты.
Это выглядит страшно, не так ли?
Не так уж и страшно. Это на самом деле проще, чем может показаться.
Объяснение изменения
В основном, Google прекратили выпуск новых версий библиотеки play core еще в начале 2022 года.
Последняя выпущенная версия библиотеки play core
И с апреля 2022 года они разбили исходную библиотеку play core на четыре отдельные библиотеки:
- библиотека доставки активов Play Assets Delivery Library
- библиотека доставки функций Play Feature Delivery Library
- библиотека отзывов в приложениях Play In-App Reviews Library
- библиотека обновлений в приложениях Play In-App Updates Library
Каждая библиотека обладает своей собственной функциональностью и ответственностью.
Поскольку старое ядро библиотеки play поддерживает только до определенного уровня API, вам необходимо мигрировать ваше приложение на использование более новых библиотек, которые имеют поддержку наиболее последних уровней API.
В основе, вам нужно определить, какую функциональность оригинальной ядра библиотеки play вы используете, и затем загрузите соответствующую часть. Например, если у вас была логика для уведомления пользователей о наличии более новой версии вашего приложения, вам нужно взять библиотеку Play In-App-Updates.
Мы будем рассматривать два случая использования:
- Нативное приложение Android
- Приложение Flutter
Случай использования – Нативное приложение Android
Если у вас есть нативное приложение Android, будь то написано на Kotlin или Java, вам нужно сделать следующее:
- Откройте ваш файл build.gradle приложения на уровне
- Скорее всего, вы увидите в блоке dependencies эту строку:
implementation 'com.google.android.play:core-ktx:1.8.1'
-
Вам нужно будет удалить ее и заменить в соответствии с тем, что вы использовали в предыдущей ядренной библиотеке
-
Если вам нужно взять библиотеку Play In-App-Updates, то вам нужно добавить это в блок dependencies:
implementation 'com.google.android.play:app-update:2.1.0'
//Добавьте ниже зависимость, если вы используете Kotlin в вашем приложении
implementation 'com.google.android.play:app-update-ktx:2.1.0'
- plaintext
Перестройте ваше приложение и убедитесь, что все работает как оно должно.
✋ Вам также может потребоваться изменить операторы импорта из import com.google.android.play.core.tasks.*; в import com.google.android.gms.tasks.*;.
Сценарий использования – Приложение Flutter
Поскольку Flutter является фреймворком, ориентированным как на Android, так и на iOS, этот сценарий немного отличается от описанного выше. Если вы получаете предупреждение о необходимости обновить базовую библиотеку play в вашем приложении Flutter, вам нужно проверить библиотеки, которые вы используете в вашем файле pubspec.yaml:
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^3.0.0
Как вы можете видеть выше, приложение зависит от библиотеки in_app_update, связанной с уведомлением пользователей о наличии более новой версии приложения. Когда мы переходим на страницу журнала изменений in_app_update на pub.dev, мы можем увидеть, что:
версия 4.1.0 добавила необходимую поддержку
Так что нам нужно обновить наш файл pubspec.yaml, чтобы использовать эту версию (по крайней мере).
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^4.1.0
Запустите Pub get и все должно быть в порядке.
Source:
https://www.freecodecamp.org/news/migrate-from-play-core-library/