Varför appar slutar fungera efter systemuppdateringar
Av CodexierPublicerad 5 min läsning
En vanlig överraskning för appägare: ingenting har ändrats, men efter en ny version av iOS eller Android kraschar appen vid start, notiserna slutar komma eller inloggningen ser konstig ut. Appen ändrades inte, men plattformen den körs på gjorde det. Apple och Google släpper en större systemversion varje år, fasar ut gamla gränssnitt, skärper behörigheterna och sätter deadlines som appar måste klara för att ligga kvar i butikerna. Här förklarar vi cykeln, vad som brukar gå sönder och hur du budgeterar så att det inte kommer som en chock.
Den årliga systemcykeln
| När | Apple | |
|---|---|---|
| Försommar | Ny iOS presenteras på WWDC och utvecklarbetor startar | Betor av nästa Android-version är redan igång |
| Sommar | Publika betor; dags att testa appen | Androids större release kommer numera runt mitten av året |
| Sensommar | Releasekandidater | Deadline i Play Butik för målnivå på nya appar och uppdateringar |
| September | Ny iOS släpps tillsammans med nya iPhones | Uppdateringen rullas ut hos tillverkarna under flera månader |
| Vår | Apple kräver bygge med senaste SDK för nya inskick | Planering inför nästa års målnivå |
Exakta datum flyttas varje år; kontrollera Apples och Googles utvecklarnyheter för aktuella deadlines.
Utfasade gränssnitt och behörigheter
Det mesta som går sönder har tre orsaker. Den första är utfasade gränssnitt: en funktion som appen använder markeras som föråldrad och ändras eller tas sedan bort. Den andra är nya regler för integritet och behörigheter: åtkomst till plats, bilder, kontakter, notiser, urklipp eller bakgrundsaktivitet blir striktare, och kod skriven för det gamla beteendet slutar fungera utan synliga fel. Den tredje är tredjepartsbibliotek: appen bygger på dussintals paket för kartor, betalningar, analys eller inloggning, och vart och ett måste också uppdateras för det nya systemet.
- Pushnotiser som kräver en ny behörighetsfråga eller inställning.
- Bakgrundsuppgifter som platsspårning eller synk som begränsas ytterligare.
- Layoutändringar, till exempel skärmar från kant till kant som lägger sig över innehåll ritat för äldre layouter.
- Åtkomst till bilder och filer som flyttas till väljare som bara lämnar ut det användaren markerar.
- Inloggningsflöden med webbvyer eller SDK:er från tredje part som slutar fungera tills de uppdateras.
- Ramverk för flera plattformar, som React Native eller Flutter, som måste uppgraderas innan appen kan rikta sig mot det nya systemet.
Butikernas krav på målversion
Även om appen fortfarande fungerar tvingar butikerna fram förändring. Google Play kräver att nya appar och uppdateringar riktar sig mot en aktuell API-nivå i Android, med en deadline varje år; appar som halkar för långt efter blir otillgängliga för nya användare på nyare enheter. Apple kräver att nya inskick och uppdateringar byggs med en aktuell version av Xcode och SDK. I praktiken betyder det att om appen inte uppdaterats på ett år eller mer kan nästa lilla ändring först kräva en uppgradering av ramverket. Om själva inskicket kan du läsa i vår guide till granskningen i App Store.
Betatesta före release
- Installera utvecklarbetorna på en testenhet så snart de är stabila nog, oftast tidigt på sommaren.
- Gå igenom ett skrivet testmanus för appens kritiska flöden: inloggning, huvuduppgifter, betalningar och notiser.
- Håll koll på kraschrapporter från betaversioner av systemet; testare och tidiga användare syns där först.
- Uppdatera ramverk och tredjepartsbibliotek och bygg om med den nya SDK:n.
- Släpp en kompatibilitetsrelease före eller direkt efter att systemet lanseras publikt.
- Bevaka kraschfrekvens och omdömen i två veckor efter systemreleasen.
Automatiska tester av de kritiska flödena gör detta mycket billigare. Utan dem innebär varje systemrelease ett fullständigt manuellt test på båda plattformarna.
Planera budgeten för uppdateringar
Årligt kompatibilitetsarbete
Planera ett fast block arbete varje sommar för test på betor, uppgradering av ramverk och bibliotek och en kompatibilitetsrelease på båda plattformarna.
Löpande underhåll
Mindre uppdateringar av beroenden under året håller det årliga hoppet litet. Hoppar du över dem blir nästa uppgradering större och mer riskfylld.
Buffert för akuta fel
Håll lite kapacitet för den sällsynta ändringen som bara visar sig efter lansering på vissa enheter.
Guiden om vad appunderhåll kostar ger hela bilden. När du inte behöver ett underhållsavtal: är appen ett internt verktyg på styrda enheter där ni själva bestämmer när systemet uppdateras, eller har ni en utvecklare internt, kan ni sköta cykeln själva. För alla andra täcker vår tjänst för appunderhåll och skalning den årliga cykeln; se priser eller boka ett samtal.
Vanliga frågor
Appen fungerade i går och kraschar efter uppdateringen. Vad gör vi?
Titta i kraschrapporterna för den nya systemversionen för att hitta koden som fallerar, rätta den och skicka in en uppdatering. Går det inte att rätta snabbt, informera användare på den berörda versionen i butiksbeskrivningen och i era supportkanaler medan ni arbetar.
Kan vi be användarna att inte uppdatera telefonen?
Inte realistiskt. De flesta telefoner uppdateras automatiskt, och säkerhetsuppdateringarna är viktiga för användarna. Planera för den nya versionen i stället för att hoppas att användarna stannar på den gamla.
Tas appen bort om vi inte uppdaterar den?
Inte direkt, men Google Play döljer appar som riktar sig mot för gamla API-nivåer för nya användare på nyare enheter, och Apple kan ta bort appar som inte längre fungerar eller inte uppdaterats på länge. Över ett par år tynar en ounderhållen app bort.
Blir det enklare med ett ramverk för flera plattformar?
Det innebär en kodbas att uppdatera, men ni blir också beroende av att ramverket hänger med på båda plattformarna. Uppgraderingar av ramverket kan vara stora, så håll det aktuellt i stället för att hoppa över versioner.
Ligg steget före nästa systemrelease
Berätta när appen senast uppdaterades och vad den är byggd med. På en kvart kan vi säga vad nästa systemrelease troligen kommer att knäcka och vad som krävs för att vara redo.
Boka ett kostnadsfritt 15-minuterssamtal