codexier.

Mobilappar

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ärAppleGoogle
FörsommarNy iOS presenteras på WWDC och utvecklarbetor startarBetor av nästa Android-version är redan igång
SommarPublika betor; dags att testa appenAndroids större release kommer numera runt mitten av året
SensommarReleasekandidaterDeadline i Play Butik för målnivå på nya appar och uppdateringar
SeptemberNy iOS släpps tillsammans med nya iPhonesUppdateringen rullas ut hos tillverkarna under flera månader
VårApple kräver bygge med senaste SDK för nya inskickPlanering 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

  1. Installera utvecklarbetorna på en testenhet så snart de är stabila nog, oftast tidigt på sommaren.
  2. Gå igenom ett skrivet testmanus för appens kritiska flöden: inloggning, huvuduppgifter, betalningar och notiser.
  3. Håll koll på kraschrapporter från betaversioner av systemet; testare och tidiga användare syns där först.
  4. Uppdatera ramverk och tredjepartsbibliotek och bygg om med den nya SDK:n.
  5. Släpp en kompatibilitetsrelease före eller direkt efter att systemet lanseras publikt.
  6. 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