+420 603 755 610
info@inited.cz
flagEnglish (Angličtina)
flagČeština
INITED Solutions s.r.o.
  • Domů
  • Služby
    • Vývoj mobilních aplikací
    • Záchrana projektů
    • Konzultace
    • Provoz a rozvoj mobilních aplikací
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Kontakt
Aktualizace iOS aplikace

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

20.1.2021Jaroslav Pavlíček

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.

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.
Předchozí článek Prát se (práce) musí lidi bavit Další článek Proč firmy mění IT dodavatele?

Kategorie článků

  • Marketing a prodej (26)
  • Mobilní aplikace (47)
  • Mobilní telefony a HW/Ostatní (13)
  • Ostatní (13)
  • Top (5)
  • Trendy (39)
  • Z naší dílny (20)

Přečtěte si také

  • Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě
  • Apple umožňuje publikovat aplikace v alternativních obchodech. Jaké jsou podmínky?
  • Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít
  • 6 rozdílů mezi ASO pro App Store a pro Google Play
  • Hodinová sazba za vývoj mobilní aplikace: jak se liší u freelancerů a agentur
  • Cena vývoje mobilní aplikace 2024
  • Co jsou widgety a proč se vyplatí i vaší aplikaci
  • Chcete, aby vaše aplikace zůstala na Google Play? Musíte ji aktualizovat!
  • 7 trendů ve vývoji mobilních aplikací pro rok 2024
  • Povinné ověření účtů vývojářů na Google Play
  • Jak funguje našich 6 etap vývoje mobilních aplikací
  • Nebuďte součástí hloupých předsudků a pověr! Můžete tím přijít o peníze i o zákazníky
  • Máte aktuální API? Bez ní vás někteří uživatelé v Google Play nenajdou
  • UX mobilní aplikace: 3 věci, na které musíte myslet
  • AI na vlastní kůži: Jak vypadá aplikace s texty od ChatGPT
  • Proč je práce z domova okolím vnímána jako podřadnější než práce v kanceláři?
  • 3 největší novinky, které přinese Google Pixel 8
  • 6 technologií, které vylepší vaši aplikaci
  • 5 tipů, jak využít umělou inteligenci v mobilní aplikaci
  • 7 nejčastějších chyb, které firmy dělají v ASO

Ahoj 123

blablabl

  • Domů
  • Služby
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Náš tým
  • Kontakt
© 2023 Created by Provocado
Na tomto webu používáme cookies
Cookies nám pomáhají vidět realitu - co návštěvníky zajímá, co čtou a co naopak přeskakují. Používáme Google Analytics, Google Fonts aYouTube. Více o cookies, najdete v dokumentu níže.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
Předvolby
{title} {title} {title}