Aplikaci odstranili z App Store – Proč? A co teď?

Aplikaci odstranili z App Store – Proč? A co teď?

Mobilní aplikace

I když aplikace funguje, Vám to stačí a nikdo si nestěžuje, přesto je třeba ji jednou za čas aktualizovat. Důvodem je tlak Apple a Google na podporu nových zařízení a zvyšování bezpečnostních standardů. Obě firmy totiž průběžně aktualizují „pravidla hry“ a aplikace je musí splňovat. Kontrola se zpravidla provádí při publikaci nové verze a tak na vývojáře tlačí, aby aplikace aktualizovali. V případě, že aplikaci delší dobu (několik let) neaktualizujete, obdržíte upozornění a pokud na něj nezareagujete, aplikace bude z obchodu stažena.

Takto může vypadat zpráva o odstranění aplikace a Apple App Store:

Dear Developer, On September 1, 2016, we announced that we will be implementing an ongoing process of evaluating and removing apps that no longer function as intended, don’t follow current review guidelines, or are outdated. We noticed that your app has not been updated in a significant amount of time. Next Steps To keep your app on the App Store, submit an updated version for review and make sure it follows the latest App Review Guidelines. If you are unable to submit an update within 30 days, your app will be removed from the App Store until you submit an update, and it is approved. If Your App is Removed Your app will remain fully functional for current users. They will experience no interruption to services, will still be able to buy in-app purchases, and can re-download the app while restoring from an iCloud or iTunes backup. However, we recommend that you update your app as soon as possible to reinstate it on the App Store and ensure that it remains functional and engaging for new and existing customers. You can continue to use your current app name, as your app has not been deleted from your account. However, please note that if your app name is longer than 50 characters, you will need to modify it to meet current naming guidelines. Additional Information Learn more about changes to the App Store and keeping your apps up-to-date. App Store Improvements App Review Resources Debugging Your Apps Best regards, App Store Review

Jak takové situaci předcházet

Určitě vydáváním průběžných aktualizací alespoň 1x za rok. Uživatelé mají v obchodě možnost vidět datum poslední aktualizace i celkovou historii. Aplikace, na které je vidět, že bývá aktualizovaná, vzbuzuje také větší důvěryhodnost. Při pravidelných aktualizacích se nové požadavky obchodů, vyšší technologické a bezpečnostní standardy řeší průběžně.

Pokud už se to stane

Pokud už ke stažení aplikace z obchodu došlo, je třeba oprášit zdrojové kódy, udělat kompletní aktualizaci a aplikaci znovu vypublikovat. V těchto případech se může stát, že původní programátor již není k dispozici, nebo nejsou k sehnání zdrojové kódy. Také se může ukázat, že aktualizace by byla tak náročná, že je lepší aplikaci naprogramovat znovu. Bohužel, technologický pokrok je rychlý a nemilosrdný, v oblasti mobilních aplikací o to víc.

Praktický příklad – aktualizace aplikace Čas krmení

V prosinci 2020 jsme aktualizovali technologicky nenáročnou aplikaci, která pomáhá zákazníkům e-shopu opakovat poslední objednávku. Pro zákazníka aplikace přináší lepší uživatelský komfort a časovou úsporu. Pro prodejce zvýšenou loajalitu a udržení stávájících zákazníků, snížení rizika zachvácení konkurencí.

Situace

Aplikace byla vypublikována na konci léta 2014. V té době se horečnatě očekávalo vydání iPhone 6 a Samsung S5 byl na světě 6 měsíců. Pro 3 obrazovky, které aplikace obsahuje, jsme si tenkrát vystačili s jquery a cordovou, tvorba celé aplikaci zabrala pár desítek hodin včetně napojení na e-shop a publikci. Protože dlouhodobě fungovala dobře, nebyla potřeba něco měnit ani aktualizovat. Přesto ji Apple z obchodu odstranil pro neplnění aktuálních podmínek obchodu.

Řešení

Je třeba zmínit, že protože se jednalo pro verzi pro platformu iOS, bylo vhodné provádět aktualizaci na Mac OS. S jiným operačním systémem, např. s Windows, je sice také možné pro iOS vyvíjet, ale na úkor komfortu a času.

Aktualizace obsahovala následující činnosti:

Aktualizovat verzi platformy
Nejprve proběhla aktualizace verzí platformy Cordova. Bylo třeba aktualizovat některé konfigurační soubory, některé doplnit. Také bylo třeba doplnit skripty pro automatickou kompilaci – CI.

Vygenerovat nový provisioning profile
Pro testování na fyzických zařízení bylo třeba vygenerovat nový provisioning profile. Poté se podařilo aplikaci prvně spustit a ověřit její funkčnost. Ukázalo se, že je třeba opravit několik drobností a funkce, které přestaly pracovat úplně.

Nahradit UIWebView novým WKWebVies
Od podzimu roku 2020 musí povinně všechny aplikace používat pro zobrazování HTML obsahu komponentu WKWebView. Použití UIWebView je zakázáno a

Nastavit na serveru hlavičky CORS
Hybridní mobilní aplikace, které interně používají webový prohlížeč, potřebují pro komunikaci se serverem správně nastavené hlavičky CORS. Ty slouží k zabezpečení přístupu k obsahu pouze oprávněným aplikacím. V době, kdy aplikace vznikala, byla tato bezpečnostní politika dobrovolná, dnes je nezbytná. V případě serveru, který používá PHP, stačilo přidat následující řádky:

if (isset($_SERVER["HTTP_ORIGIN"])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); } header("Access-Control-Allow-Credentials: true"); if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"])) { header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); } if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_METHOD"])) { header("Access-Control-Allow-Methods: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']}"); }

Opravit otevírání odkazů v novém okně
Technika, která se v minulosti používala, již z bezpečnostních důvodů dál není možná a na nových verzích iOS nefunguje vůbec. Řešením bylo přidání pluginu cordova-plugin-inappbrowser a drobná úprava kódu.

Opravit status bar
IPhone X přišel nejen s oblými rohy obrazovky, ale také s jinou formou horní části displeje, hovorově nazývané „uši“ nebo správně „notch“. Aby aplikace hezky vypadala, byl přidán plugin cordova-plugin-statusbar a nastavena stejná barva pozadí, jako mělo logo.

Obrázek – notch původní a opravený:

Čas krmení - notch - blběČas krmení - notch - správně

Opravit tlačítko ukončení aplikace
Po odeslání objednávky již není kam v aplikaci pokračovat, a proto je zde tlačítko na její ukončení. V nové verzi přestalo pracovat a bylo třeba je opravit přidáním pluginu s nativním, kódem, který ukončení provedl.

Doplnit chybějící ikony
Ve světě mobilních aplikací je běžné, že aplikace obsahuje ikony aplikace v různých formátech a rozměrech. Byly tedy doplněny ikony chybějících rozměrů.

Čas krmení - chybějící ikony
Čas krmení – chybějící ikony

Doplnit chybějící splash screeny
Situace se splash screeny je podobná té s ikonami. Byly tedy doplněny ikony chybějících rozměrů. Protože se v případě platformy ios jedná o cca 10 bitmap velkých rozměrů a navíc ve formátu PNG,
je do budoucna preferovaný způsob použití story boardu.

Čas krmení - chybějící splashe
Čas krmení – chybějící splashe

Nafotit obrazovky aplikaci
Povinnou součástí popisu aplikace v obchodě jsou nafocené obrazovky aplikace. Ty je třeba pořídit v několika předepsaných rozměrech:

  • iPhone Xs Max
  • iPhone 8 Plus
  • iPad Pro (12.9-inch) (4th generation)

Obrazovky se ve většině případů fotí v emulátoru.

Čas krmení - nafocené obrazovky do obchodu
Čas krmení – nafocené obrazovky do obchodu

Aktualizovat zastaralý záznam v obchodě
Zejména:

  • podmínky zpracování osobních údajů
  • vyfocené obrazovky aplikace (staré byly naprosto nepoužitelné)
  • další popisy, které se v té době nepřidávaly
  • možnost přidat další odkazy

Vložit do obchodu zkompilovanou aplikaci
Nejprve je třeba aktualizovat distribuční certifikát a distribuční provisioning profile. Poté provést kompilaci aplikace a vytvořený balíček nahrát do obchodu. Nahrávání se neprovádí způsobem, na který jsme běžně zvyklí – tlačítkem „Upload“, ale Apple pro to používá program Transporter, který lze spustit pouze na Mac OS. Pokud Mac OS není k dispozici nebo při použití CI je možné použít alternativní iTMS řešení.

Schvalovací proces
Schvalovací proces má několik částí: 1. probíhá v programu Transporter ještě před odesláním. 2. probíhá ihned po odeslání, automaticky. 3. probíhá po odeslání vyplněného záznamu v obchodě schvalovacím týmem. Schvalovací proces má za cíl zajistit uživatelům funkční a bezpečnou aplikaci. Po úspěšném schválení je aplikace k dispozici uživatelům.

Na závěr

Někdy by se mohlo zdát, že „oprášit a vložit aplikaci do obchodu“ je činnost na pár kliků myši a 30 minut času. Takové očekávání mají mnohdy klienti i programátoři a výsledkem bývá rozčarování, přestože vše probíhalo bez větších komplikací a obtíží. Není to složitý proces, ale vezme si svůj čas, se kterým je třeba od začátku počítat.

Sdílejte článek
Jaroslav Pavlíček
Jaroslav Pavlíček

Jaroslav je certifikovaný architekt (TOGAF) s 25+ lety praxe v IT. Díky tomu mají naše mobilní aplikace vysokou technickou úroveň a jsou postavené na spolehlivých technologiích. Své zkušenosti získával na projektech v zahraničí (Velká Británie, Malta) a vedle INITED působí jako konzultant Adobe Experience Manager, AEM.

Oblíbené
Splash screeny v mobilních aplikacích. Od teorie a historie až po implementace na iOS a Androidu

V ideálním světě by se mobilní aplikace spustila okamžitě. Načtení všech potřebných dat ale chvíli trvá. Telefony jsou sice čím dál tím výkonnější, aplikace s...

Ilustrační grafika s nápisem AI.
5 tipů, jak využít umělou inteligenci v mobilní aplikaci

Pokud se 10 lidí zeptáte, jaký je největší trend v oblasti mobilních aplikací, s největší pravděpodobností vám všichni odpoví stejně – umělá inteligence. Velká popularita...

Ilustrační obrázek s názvem rozhovoru s Janou Markovou o mobilních a webových aplikacích.
Ostatní 20. 3. 2024
Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě

Aby práce na mobilní aplikaci běžely plynule a bez zbytečných potíží, je potřeba pečlivé projektové vedení. A za to je v INITED už od roku...

Ilustrační grafika s názvem článku a rukou kreslící návrh mobilní aplikace.
Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít

„Mám nápad na skvělou mobilní aplikaci.“ Takovou větu u nás slyšíme velmi často. Jenže… od nápadu k aplikaci vede dlouhá cesta, na které potřebujete promyslet...

Mohlo by vás zajímat

Zobrazit vše
Splash screeny v mobilních aplikacích. Od teorie a historie až po implementace na iOS a Androidu
Mobilní aplikace
Splash screeny v mobilních aplikacích. Od teorie a historie až po implementace na iOS a Androidu

V ideálním světě by se mobilní aplikace spustila okamžitě. Načtení všech potřebných dat ale chvíli trvá. Telefony jsou sice čím dál tím výkonnější, aplikace s...

Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě
Ostatní
Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě

Aby práce na mobilní aplikaci běžely plynule a bez zbytečných potíží, je potřeba pečlivé projektové vedení. A za to je v INITED už od roku...

Apple umožňuje publikovat aplikace v alternativních obchodech. Jaké jsou podmínky?
Mobilní aplikace
Apple umožňuje publikovat aplikace v alternativních obchodech. Jaké jsou podmínky?

Vydávat aplikace pro iOS mimo App Store bylo až donedávna prakticky nemyslitelné. Od března 2024 je to ale jinak – Apple totiž vydavatelům v Evropské...

Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít
Mobilní aplikace
Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít

„Mám nápad na skvělou mobilní aplikaci.“ Takovou větu u nás slyšíme velmi často. Jenže… od nápadu k aplikaci vede dlouhá cesta, na které potřebujete promyslet...

6 rozdílů mezi ASO pro App Store a pro Google Play
6 rozdílů mezi ASO pro App Store a pro Google Play

Jakmile připravíte novou mobilní aplikaci, máte před sebou zásadní úkol – dostat ji k co největšímu množství lidí. Pomůže vám s tím ASO – tedy...

Novinky ze světa mobilních aplikací každý měsíc na vašem e-mailu.