Potreste aver ricevuto recentemente un’email dalla Google Play Store che recita il seguente:
Aggiorna il tuo dipendente Maven di Play Core alla versione compatibile con Android 14! La tua attuale libreria Play Core non è compatibile con targetSdkVersion 34 (Android 14), che introduce una modifica non retrocompatibile nei ricevitori di broadcast per migliorare la sicurezza utente. Come ricordo, a partire dal 31 agosto, Google Play richiede a tutti i nuovi rilasci di app di mirare ad Android 14. Aggiorna alla versione più recente della dipendenza della libreria Play Core per evitare crash dell’applicazione: https://developer.android.com/guide/playcore#playcore-migration
Potresti non essere in grado di rilasciare future versioni dell’app con questa versione dell’SDK in produzione o nelle fasi di test aperte.
Sembra terribile, non è vero?
Non preoccuparti troppo. E’ di fatto più semplice di quanto sembri.
Cosa riguarda davvero questo cambiamento
In sostanza, Google ha smesso di rilasciare nuove versioni della libreria Play Core a metà del 2022.
Ultima versione della libreria Play Core rilasciata
E da aprile 2022, hanno smembrato la libreria Play Core originale in quattro librerie separate:
- Play Assets Delivery Library
- Play Feature Delivery Library
- Play In-App Reviews Library
- Play In-App Updates Library
Ogni libreria ha le sue funzionalità e responsabilità.
Dato che la vecchia libreria core Play supporta solo fino ad un determinato livello di API, è necessario migrare l’applicazione per utilizzare le nuove librerie che supportano i più recenti livelli di API.
In sostanza, bisogna determinare quale funzionalità della libreria core Play originale si sta utilizzando e quindi scaricare la parte corretta. Per esempio, se c’era una logica per notificare agli utenti l’availability di una nuova versione dell’applicazione, è necessario prendere la libreria Play In-App-Updates.
In questo documento viene presentato due casi d’uso:
- Applicazione Android nativa
- Applicazione Flutter
Caso d’uso – App Android nativa
Se si ha una applicazione Android nativa, scritta in Kotlin o Java, bisogna fare i seguenti passaggi:
- Aprire il file build.gradle a livello di applicazione
- Probabilmente vedrete, nel blocco delle dipendenze, questa riga:
implementation 'com.google.android.play:core-ktx:1.8.1'
-
Dovete la rimuovere e sostituirla con ciò che avete utilizzato nella precedente libreria core
-
Se serve prendere la libreria Play In-App-Updates, allora dovete aggiungere queste righe nel blocco delle dipendenze:
implementation 'com.google.android.play:app-update:2.1.0'
//Aggiungere la dipendenza qui sotto se utilizzate Kotlin nell'applicazione
implementation 'com.google.android.play:app-update-ktx:2.1.0'
- Ricompila il tuo applicazione e verifica che tutto funzioni come previsto.
✋ Puoi anche dover cambiare le dichiarazioni di importazione da import com.google.android.play.core.tasks.*; a import com.google.android.gms.tasks.*;.
Scenario d’uso – Applicazione Flutter
Poiché Flutter è un framework che supporta sia Android che iOS, questo scenario è un po ‘diverso da quello descritto prima. Se ricevi un avviso per l’aggiornamento della libreria core play nella tua applicazione Flutter, devi controllare le librerie che stai usando nel tuo file pubspec.yaml:
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^3.0.0
Come puoi vedere sopra, l’applicazione dipende dalla libreria in_app_update, che ha a che fare con la notifica agli utenti della disponibilità di una nuova versione dell’applicazione. Quando vai sulla pagina changelog di in_app_update su pub.dev, puoi vedere che:
la versione 4.1.0 ha aggiunto il supporto richiesto
Quindi devi aggiornare il tuo file pubspec.yaml per usare quella versione (almeno).
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^4.1.0
Esegui Pub get e dovresti essere pronto a go.
Source:
https://www.freecodecamp.org/news/migrate-from-play-core-library/