Miks ma ikka näen API taseme 34 hoiatust?
Flutteri arenduses on uusima Android API taseme sihtimine ülioluline, et tagada rakenduste ühilduvus uute funktsioonide ja turbeuuendustega. Hiljuti, pärast targetSdkVersion muutmist API tasemele 34 (Android 14), teatasid arendajad, et Play Console hoiatab endiselt, et rakendus peab vaatamata edukale ehitamisele sihtima Android 14 või uuemat versiooni.
See erinevus võib tekitada segadust, eriti kui eelmised rakenduste komplektid töötavad endiselt konsoolis. Rakenduse Flutteri tõhusaks vabastamiseks on oluline mõista, kuidas varasemad versioonid praegust üleslaadimist mõjutavad, ja selle hoiatuse käsitlemine.
Käsk | Kirjeldus |
---|---|
compileSdkVersion | Määrab rakenduse kompileerimiseks kasutatava API taseme. Sel juhul on see seatud väärtusele 34, mis sihib Android 14. |
targetSdkVersion | Määrab Android API taseme, millel rakendus töötab. Värskendamine versioonile 34 tagab ühilduvuse Android 14-ga. |
google.auth.default() | Hangib vaikemandaadid juurdepääsuks Google API-dele, mida tavaliselt kasutatakse koos pilveteenustega. |
build('androidpublisher', 'v3') | Lähtestab Google Play arendaja API, et rakenduste pakette ja väljalaseid saaks programmiliselt hallata. |
service.edits().insert() | Avab Google Play Console'is uue redigeerimisseansi, mis on vajalik rakenduse metaandmete või kogumite muutmiseks. |
bundles = service.edits().bundles().list() | Loetleb kõik rakenduse komplektid, mis on seotud konkreetse rakenduse versiooniga. See võimaldab skriptil kindlaks teha, kas vanemad versioonid on endiselt aktiivsed. |
service.edits().bundles().delete() | Eemaldab Google Play Console'ist aktiivse paketi. See on mugav aegunud või vastuoluliste konstruktsioonide kõrvaldamiseks. |
service.edits().commit() | Kinnitab redigeerimisseansi ajal tehtud muudatused, sealhulgas kõik rakenduse konfiguratsiooni ja kogumite muudatused. |
Flutteri API-taseme sihtimise lahenduse mõistmine
Esimene skript muudab projekti Flutter Androidi seadistust tagamaks, et rakendus sihib õigesti API taset 34. Olulised käsud on compileSdkVersion ja targetSdkVersion, mis määravad kompileerimisel ja juurutamisel kasutatavad Androidi SDK versioonid. Kui määrate compileSdkVersion väärtusele 34, tagate, et programm on loodud operatsioonisüsteemi Android 14 kasutades, samas kui targetSdkVersion määrab rakenduse jaoks ettenähtud Androidi versiooni. Need muudatused värskendavad projekti seadeid, et need vastaksid uusimatele Google Play poe esitamisstandarditele, eemaldades hoiatuse toetamata API tasemete kohta.
Teine skript suhtleb Google Play Console API-ga Pythoni kaudu. See automatiseerib probleeme tekitada võivate vanemate tarkvarapakettide tuvastamise ja eemaldamise protsessi. google.auth.default() tagastab Play poe API-le juurdepääsuks vaikemandaadid, samas kui build('androidpublisher', 'v3') lähtestab Google Play arendaja API. Seejärel kasutab skript aktiivsete rakendusepakettide hankimiseks service.edits().bundles().list() ja kui avastatakse vana versioon, siis service.edits().bundles().delete() kustutab selle. Lõpuks salvestab ja rakendab käsk service.edits().commit() kõik muudatused, tagades, et rakendus ei sisalda aegunud pakette, mis võiksid tõrketeate põhjustada.
Lahendus: tagage Flutteri rakenduste jaoks õige siht-SDK taseme värskendus.
Flutter (Dart) Androidi manifesti värskendus
android {
compileSdkVersion 34
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 34
versionCode 1
versionName "1.0"
}
}
Taustaprogrammi skript: komplekti versiooni kinnitamine ja vana komplekti desaktiveerimine
Google Play Console'i API (Python) aktiivsete rakenduspakettide haldamiseks
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()
Flutteri rakenduse värskenduste vastuoluliste komplektide lahendamine.
Üks levinud probleem Flutteri rakenduse targetSdkVersion värskendamisel on vanade rakendusepakettide olemasolu, mis kuvatakse Google Play Console'is endiselt aktiivsena. Isegi kui need komplektid on aegunud, võivad need takistada uusima järgu õiget tuvastamist, mille tulemuseks on hoiatused, nagu „Rakendus peab sihtima Android 14 (API tase 34) või uuemat”. Kuigi targetSdkVersion muutmine väärtuseks 34 on vajalik, peavad arendajad ka tagama, et eelmised versioonid ei häiriks värskendusprotsessi. Rakenduse versioonide haldamine, eriti vananenud pakettide eemaldamine, võib aidata seda probleemi lahendada.
Lisaks API sihttaseme asjakohasele määratlemisele failis build.gradle tuleks aktiivsed versioonid Google Play Console'is regulaarselt üle vaadata. Arendajad peaksid kasutama selliseid tööriistu nagu Google Play arendaja API või aegunud paketid käsitsi keelama. See tagab, et Play pood kajastab täpselt uusimat järgu konfiguratsiooni. Kuna Google Play nõuab, et rakendused järgiksid värskenduste jaoks rangeid versioonikriteeriume, tagab nii koodi kui ka kogumite juhtimine Play Console'is sujuva ülemineku ja vähendab lahendamata API taseme hoiatuste tekkimise tõenäosust.
Levinud küsimused Android 14 API taseme 34 sihtimise kohta funktsiooniga Flutter.
- Miks jääb API taseme hoiatus vaatamata targetSdkVersion värskendamisele?
- See võib juhtuda, kui Play Console'i varasemad rakenduste komplektid on endiselt aktiivseks määratud, mis põhjustab konflikte.
- Kuidas saan Google Play Console'is aegunud paketid keelata?
- Kasutage vanemate versioonide desaktiveerimiseks Google Play arendaja API-t või tehke seda käsitsi Play Console'i liidese abil.
- Mis on targetSdkVersion funktsioon rakenduses Flutter?
- See määrab API taseme, millel teie programm töötab, tagades ühilduvuse Androidi uuemate funktsioonidega.
- Mis vahe on compileSdkVersion ja targetSdkVersion vahel?
- compileSdkVersion määrab kompileerimise ajal kasutatud SDK versiooni, samas kui targetSdkVersion määrab versiooni, mida teie programm käitusajal sihib.
- Kuidas ma saan Play Console'is praegu aktiivseid kogumeid vaadata?
- Saate need loendisse lisada käsuga service.edits().bundles().list() või vaadata neid otse Play Console'is.
Peamised abinõud API sihtimisega seotud probleemide lahendamiseks.
Play poe nõuetele vastavuse tagamiseks on oluline tagada, et teie rakendus Flutter sihiks sobivat API-taset. TargetSdkVersioni värskendamisele versioonile 34 peaks järgnema Play Console'i aktiivsete rakendusepakettide ulatuslik hindamine. Vanemad, vastuolulised versioonid võivad takistada uusima järgu õiget tuvastamist. Kasutades selliseid tehnoloogiaid nagu Google Play arendaja API, saavad arendajad aegunud paketid desaktiveerida, parandades levinud probleemi ja tagades rakenduste kiire levitamise ilma hoiatusteta.