UIWebView udskiftes med WKWebView - House of Code
Luk

Når Apple effektuerer udfasningen af UIWebView, betyder det at apps, som ikke er migreret til det nye WKWebView, ikke længere kan uploades til App Store. Det gælder for nye apps fra april og for eksisterende apps fra december. Migreringen kræver udskiftning i appens kodebase, og en tilpasning af relateret kode.

Erstatter motor til HTML-visning i apps

Apple har for noget tid siden udskiftet den motor, der benyttes til at vise HTML-sider i apps fra en komponent kaldet UIWebView til en ny kaldet WKWebView. Grunden til udskiftningen er Apples øgede fokus på sikkerhed. Det gælder både sikkerheden i selve net-kommunikationen, men også i forhold til brugerens datasikkerhed.

Den nye motor er ikke kompatibel med den eksisterende, da interfacet er et helt andet. Skal der foretages ændringer eller opdateringer af appen efter november 2020, er det derfor nødvendigt med en omskrivning af de dele af appen, der benytter visning af hjemmesider.

Husk 3. parts-biblioteker

Foruden opdatering af appens interne kodebase skal appens 3. parts-biblioteker også opdateres, hvis der er tale om en gammel version, der benytter UIWebView.

Det kan let give lidt udfordringer, hvis det drejer sig om en app, som ikke er blevet vedligeholdt gennem en længere periode – særligt i tilfælde, hvor det ikke kun er et enkelt versionsnummer på nogle få biblioteker, men flere versionsnumre på flere biblioteker. Jo flere versionsnumre der skal indhentes, desto større dele af projektets kode skal omskrives. Det kan ikke siges nok gange: løbende vedligeholdelse af apps er alfa og omega for appens fremtidssikring.

Kritisk punkt i opdatering fra gamle biblioteker

Når meget forældede biblioteker opdateres, kan det ske, at opdateringen skal passere det kritiske punkt ved iOS 9, hvor hardwaren skiftede fra ARM64- til ARM7-processor. De to processorer er kompatible, men opdateres ét bibliotek forpligter det således til opdatering af de resterende også. Arbejdet med at opdatere de biblioteker som brugte det forældede UIWebView skal med andre ord gentages for hvert enkelt bibliotek i projektet.

 





Philip Andersen

Skrevet af

Philip Andersen