Flutter: Android 14 API 34. līmeņa mērķa problēma turpinās, neskatoties uz atjauninājumiem

Flutter: Android 14 API 34. līmeņa mērķa problēma turpinās, neskatoties uz atjauninājumiem
Flutter: Android 14 API 34. līmeņa mērķa problēma turpinās, neskatoties uz atjauninājumiem

Kāpēc es joprojām redzu API 34. līmeņa brīdinājumu?

Izstrādājot Flutter, mērķēšana uz jaunāko Android API līmeni ir ļoti svarīga, lai nodrošinātu lietotņu saderību ar jaunām funkcijām un drošības jauninājumiem. Nesen, pēc mērķaSdkVersion maiņas uz API 34. līmeni (Android 14), izstrādātāji ziņoja, ka Play Console joprojām brīdina, ka lietotnei ir jābūt vērstai uz operētājsistēmu Android 14 vai jaunāku versiju, neskatoties uz veiksmīgu būvniecību.

Šīs atšķirības var radīt neskaidrības, it īpaši, ja konsolē joprojām darbojas iepriekšējās lietotņu paketes. Lai efektīvi atbrīvotu lietotni Flutter, ir svarīgi saprast, kā iepriekšējās versijas ietekmē pašreizējo augšupielādi, un pievērsties šim brīdinājumam.

Komanda Apraksts
compileSdkVersion Nosaka lietotnes kompilēšanai izmantoto API līmeni. Šajā gadījumā tas ir iestatīts uz 34, kas ir paredzēts operētājsistēmai Android 14.
targetSdkVersion Definē Android API līmeni, kurā lietotne darbosies. Atjaunināšana uz 34 nodrošina saderību ar Android 14.
google.auth.default() Izgūst noklusējuma akreditācijas datus, lai piekļūtu Google API, kas parasti tiek izmantoti kopā ar mākoņpakalpojumiem.
build('androidpublisher', 'v3') Inicializē Google Play izstrādātāja API, lai lietotņu pakotnes un laidienus varētu pārvaldīt programmatiski.
service.edits().insert() Tiek atvērta jauna rediģēšanas sesija pakalpojumā Google Play Console, kas nepieciešama, lai veiktu izmaiņas lietotņu metadatos vai komplektos.
bundles = service.edits().bundles().list() Tiek uzskaitīti visi lietotņu komplekti, kas saistīti ar konkrētu lietotnes versiju. Tas ļauj skriptam noteikt, vai vecākas versijas joprojām ir aktīvas.
service.edits().bundles().delete() Noņem aktīvo pakotni no pakalpojuma Google Play Console. Tas ir ērti, lai novērstu novecojušus vai konfliktējošus būvējumus.
service.edits().commit() Veic rediģēšanas sesijas laikā veiktās izmaiņas, tostarp visas izmaiņas lietotnes konfigurācijā un komplektos.

Izpratne par API līmeņa mērķauditorijas atlases risinājumu programmā Flutter

Pirmais skripts maina projekta Flutter Android iestatījumus, lai nodrošinātu, ka lietotne ir pareizi mērķēta uz API 34. līmeni. Svarīgākās komandas ir compileSdkVersion un targetSdkVersion, kas norāda kompilēšanas un izvietošanas laikā izmantotās Android SDK versijas. Iestatot comileSdkVersion uz 34, tiek nodrošināts, ka programma ir izveidota, izmantojot operētājsistēmu Android 14, savukārt targetSdkVersion norāda paredzēto Android versiju, kurā lietotne darbosies. Šīs izmaiņas atjaunina projekta iestatījumus, lai tie atbilstu jaunākajiem Google Play veikala iesniegšanas standartiem, noņemot brīdinājumu par neatbalstītiem API līmeņiem.

Otrais skripts sazinās ar Google Play Console API, izmantojot Python. Tas automatizē vecāku programmatūras komplektu noteikšanas un noņemšanas procesu, kas var radīt problēmas. google.auth.default() atgriež noklusējuma akreditācijas datus, lai piekļūtu Play veikala API, savukārt build('androidpublisher', 'v3') inicializē Google Play izstrādātāja API. Pēc tam skripts izmanto service.edits().bundles().list(), lai iegūtu aktīvus lietotņu komplektus, un, ja tiek atklāta veca versija, service.edits().bundles().delete() izdzēš to. Visbeidzot, komanda service.edits().commit() saglabā un piemēro visas izmaiņas, garantējot, ka lietotnē nav novecojušu komplektu, kas varētu izraisīt kļūdas ziņojumu.

Risinājums: nodrošiniet atbilstošu Flutter Apps mērķa SDK līmeņa atjauninājumu.

Flutter (Dart) Android manifesta atjauninājums

android {
    compileSdkVersion 34
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 21
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }
}

Aizmugursistēmas skripts: komplekta versijas pārbaude un vecās paketes deaktivizēšana

Google Play Console API (Python) aktīvo lietotņu komplektu pārvaldībai

import google.auth
from googleapiclient.discovery import build
credentials, project = google.auth.default()
service = build('androidpublisher', 'v3', credentials=credentials)
package_name = 'com.example.myapp'
edit_id = service.edits().insert(body={}, packageName=package_name).execute()['id']
bundles = service.edits().bundles().list(packageName=package_name, editId=edit_id).execute()
for bundle in bundles['bundles']:
    if bundle['versionCode'] == 1:  # First build still active
        service.edits().bundles().delete(packageName=package_name, editId=edit_id,
                                        bundleId=bundle['id']).execute()
service.edits().commit(packageName=package_name, editId=edit_id).execute()

Konfliktējošo komplektu atrisināšana lietotņu Flutter atjauninājumos.

Viena izplatīta problēma, atjauninot lietotnes Flutter targetSdkVersion, ir vecu lietotņu komplektu klātbūtne, kas joprojām tiek rādītas kā aktīvas pakalpojumā Google Play Console. Pat ja šie komplekti ir novecojuši, tie var novērst jaunākās versijas pareizu atpazīšanu, kā rezultātā tiek parādīti brīdinājumi, piemēram, “Lietotnes mērķauditorijai ir jābūt operētājsistēmai Android 14 (API līmenis 34) vai jaunākai versijai”. Lai gan ir jāmaina targetSdkVersion uz 34, izstrādātājiem ir arī jānodrošina, lai iepriekšējās versijas netraucētu atjaunināšanas procesu. Lietojumprogrammu versiju pārvaldība, jo īpaši novecojušo komplektu likvidēšana, var palīdzēt atrisināt šo problēmu.

Papildus atbilstošai API mērķa līmeņa noteikšanai failā build.gradle, aktīvās versijas regulāri jāpārskata pakalpojumā Google Play Console. Izstrādātājiem ir jāizmanto tādi rīki kā Google Play izstrādātāja API vai manuāli jāatspējo novecojušas pakotnes. Tas nodrošina, ka Play veikals precīzi atspoguļo jaunāko būvējuma konfigurāciju. Tā kā pakalpojumā Google Play lietotnēm ir jāatbilst stingriem versiju noteikšanas kritērijiem atjauninājumiem, koda un komplektu kontrole Play Console nodrošina vienmērīgu pāreju un samazina neatrisinātu API līmeņa brīdinājumu saņemšanas iespējamību.

Bieži uzdotie jautājumi par Android 14 API 34. līmeņa mērķauditorijas atlasi, izmantojot funkciju Flutter.

  1. Kāpēc API līmeņa brīdinājums saglabājas, neskatoties uz targetSdkVersion atjaunināšanu?
  2. Tas var notikt, ja pakalpojumā Play Console joprojām ir iepriekšējie lietotņu komplekti, kas ir noteikti kā aktīvi, tādējādi radot konfliktus.
  3. Kā pakalpojumā Google Play Console atspējot novecojušus komplektus?
  4. Izmantojiet Google Play izstrādātāja API, lai deaktivizētu vecākas versijas, vai veiciet to manuāli, izmantojot Play Console saskarni.
  5. Kāda ir targetSdkVersion funkcija programmā Flutter?
  6. Tas nosaka API līmeni, kurā jūsu programma darbosies, nodrošinot saderību ar jaunākām Android funkcijām.
  7. Kāda ir atšķirība starp compileSdkVersion un targetSdkVersion?
  8. compileSdkVersion norāda kompilēšanas laikā izmantoto SDK versiju, savukārt targetSdkVersion norāda versiju, kurai jūsu programma atlasīs izpildlaikā.
  9. Kā es varu skatīt pašlaik aktīvās grupas pakalpojumā Play Console?
  10. Varat tos uzskaitīt, izmantojot service.edits().bundles().list(), vai skatīt tos tieši pakalpojumā Play Console.

Galvenie ieteikumi API mērķauditorijas atlases problēmu risināšanai.

Lai nodrošinātu atbilstību Play veikalam, ir svarīgi nodrošināt, lai jūsu lietotnes Flutter mērķauditorija būtu atbilstoša API līmenī. Pēc targetSdkVersion atjaunināšanas uz 34 ir jāveic plašs Play Console aktīvo lietotņu komplektu novērtējums. Vecākas, konfliktējošas versijas var neļaut pareizi atpazīt jaunāko būvējumu. Izmantojot tādas tehnoloģijas kā Google Play izstrādātāja API, izstrādātāji var deaktivizēt novecojušus komplektus, novēršot izplatītu problēmu un nodrošinot ātru lietotņu izplatīšanu bez brīdinājumiem.