Testy sady Windows App Certification Kit

Sada Windows App Certification Kit obsahuje řadu testů, které pomáhají zajistit, aby byla vaše aplikace připravená k publikování do Microsoft Storu. Testy jsou uvedené níže s jejich kritérii, podrobnostmi a navrhovanými akcemi v případě selhání.

Nasazení a spuštění testů

Monitoruje aplikaci během testování certifikace, aby zaznamenala, kdy dojde k chybovému ukončení nebo zablokování aplikace.

Pozadí

Aplikace, které přestanou reagovat nebo selžou, můžou způsobit, že uživatel přijde o data a má špatnou zkušenost.

Očekáváme, že aplikace budou plně funkční bez použití režimů kompatibility Windows, zpráv AppHelp nebo oprav kompatibility.

Aplikace nesmí vypisovat knihovny DLL, které se mají načíst v klíči registru HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-DLLs.

Podrobnosti o testu

Odolnost a stabilitu aplikace otestujeme během testování certifikace.

Sada Windows App Certification Kit volá aplikaci IApplicationActivationManager::ActivateApplication pro spouštění aplikací. Aby se aplikace ActivateApplication spustila, musí být povolen nástroj Řízení uživatelských účtů (UAC) a rozlišení obrazovky musí být minimálně 1024 x 768 nebo 768 x 1024. Pokud některá z podmínek není splněná, vaše aplikace test neprojde.

Opravné akce

Ujistěte se, že je na testovacím počítači povolený nástroj Řízení uživatelských účtů.

Ujistěte se, že test spouštíte na počítači s dostatečně velkou obrazovkou.

Pokud se vaší aplikaci nepodaří spustit a testovací platforma splňuje požadavky aplikace ActivateApplication, můžete problém vyřešit kontrolou protokolu událostí aktivace. Tyto položky najdete v protokolu událostí:

  1. Otevřete eventvwr.exe a přejděte do složky Protokol aplikací a služeb\Microsoft\Windows\Immersive-Shell.
  2. Vyfiltrujte zobrazení a zobrazte ID událostí: 5900-6000.
  3. V záznamech protokolu najdete informace, které můžou vysvětlit, proč se aplikace nespustila.

Vyřešte soubor s problémem, identifikujte a opravte problém. Znovu sestavte a znovu otestujte aplikaci. Můžete také zkontrolovat, jestli se soubor s výpisem paměti vygeneroval ve složce protokolu sady Windows App Certification Kit, která se dá použít k ladění vaší aplikace.

Test spuštění verze platformy

Kontroluje, že aplikace pro Windows může běžet v budoucí verzi operačního systému. Tento test se v minulosti použil pouze pro pracovní postup desktopové aplikace, ale teď je povolený pro pracovní postupy pro Store a Univerzální platformu Windows (UWP).

Pozadí

Informace o verzi operačního systému omezily využití pro Microsoft Store. Aplikace často nesprávně používaly kontrolu verze operačního systému, aby aplikace mohla uživatelům poskytovat funkce specifické pro verzi operačního systému.

Podrobnosti o testu

Sada Windows App Certification Kit používá HighVersionLie ke zjištění, jak aplikace kontroluje verzi operačního systému. Pokud se aplikace chybově ukončí, tento test selže.

Nápravná akce

Aplikace by k tomu měly používat funkce API pro kontrolu verze. Další informace najdete v tématu Verze operačního systému .

Ověření obslužné rutiny zrušení úloh na pozadí

Tím ověříte, že aplikace má obslužnou rutinu zrušení pro deklarované úlohy na pozadí. Při zrušení úkolu musí být volána funkce, která je přímo určena. Tento test se použije jenom pro nasazené aplikace.

Pozadí

Aplikace pro Store můžou zaregistrovat proces, který běží na pozadí. Například e-mailová aplikace může čas od času odeslat příkaz ping na server. Pokud ale operační systém tyto prostředky potřebuje, zruší úlohu na pozadí a aplikace by toto zrušení měly řádně zpracovat. Aplikace, které nemají obslužnou rutinu pro zrušení, mohou spadnout nebo se nemusí zavřít, když se uživatel pokusí aplikaci zavřít.

Podrobnosti o testu

Aplikace se spustí, pozastaví a ukončí se část aplikace, která není na pozadí. Úlohy na pozadí přidružené k této aplikaci se pak zruší. Stav aplikace je zkontrolován, a pokud je aplikace stále spuštěná, test neprojde.

Nápravná akce

Přidejte do aplikace obslužnou rutinu zrušení. Další informace najdete v tématu Podpora aplikace pomocí úloh na pozadí.

Počet aplikací

Ověří se, že balíček aplikace (.msix, .appx nebo sada aplikací) obsahuje jednu aplikaci. To se v sadě změnilo na samostatný test.

Pozadí

Tento test byl proveden podle zásad obchodu.

Podrobnosti o testu

U aplikací pro Windows Phone 8.1 test ověřuje celkový počet balíčků .appx v sadě je < 512, v sadě je pouze jeden hlavní balíček a že architektura hlavního balíčku v sadě je označená jako Arm nebo neutrální.

U aplikací pro Windows 10 test ověřuje, že číslo revize ve verzi sady je nastavené na 0.

Nápravná akce

V podrobnostech testu se ujistěte, že balíček aplikace a sada splňují výše uvedené požadavky.

Test dodržování předpisů manifestu aplikace

Otestujte obsah manifestu aplikace a ujistěte se, že je jeho obsah správný.

Pozadí

Aplikace musí mít správně formátovaný manifest aplikace.

Podrobnosti o testu

Zkontroluje manifest aplikace a ověří správnost obsahu, jak je popsáno v požadavcích balíčku aplikace .

  • Přípony souborů a protokoly

    Vaše aplikace může deklarovat přípony souborů, ke kterým chce přidružit. Pokud je aplikace používána nesprávně, může deklarovat velký počet přípon souborů, z nichž většinu nemusí ani použít, což vede ke špatné uživatelské zkušenosti. Tento test přidá kontrolu, která omezí počet přípon souborů, ke kterým může aplikace přidružit.

  • Pravidlo závislosti na rámci

    Tento test vynucuje požadavek, aby aplikace měly odpovídající závislosti na UWP. Pokud existuje nevhodná závislost, tento test selže.

    Pokud dojde k neshodě mezi verzí operačního systému, na které se aplikace vztahuje, a provedenými závislostmi architektury, test selže. Test by také selhal, pokud aplikace odkazuje na jakékoliv verze preview knihoven DLL frameworku.

  • Ověřování komunikace mezi procesy (IPC)

    Tento test vynucuje požadavek, aby aplikace pro UPW nekomunikují mimo kontejner aplikace s komponentami Desktopu. Komunikace mezi procesy je určena pouze pro bokem nainstalované aplikace. Aplikace, které určují AktivovatelnéClassAttribute jejichž název je "DesktopApplicationPath", neprojdou tímto testem.

Nápravná akce

Projděte si manifest aplikace s požadavky popsanými v požadavcích na balíček aplikace .

Test funkcí zabezpečení systému Windows

Pozadí

Změna výchozí ochrany zabezpečení Windows může ohrozit zákazníky.

Podrobnosti o testu

Otestuje zabezpečení aplikace spuštěním binárního analyzátoru BinScope.

Testy binárního analyzátoru BinScope prozkoumají binární soubory aplikace za účelem kontroly kódovacích a stavebních postupů, díky kterým je aplikace méně zranitelná vůči útoku nebo ji učiní použitelnou jako vektor útoku.

Testy binárního analyzátoru BinScope kontrolují správné použití následujících funkcí souvisejících se zabezpečením.

  • Testy binárního analyzátoru BinScope
  • Podepisování privátního kódu

Testy binárního analyzátoru BinScope

Binární analyzátor BinScope provádí testy, které prozkoumají binární soubory aplikace a kontrolují kódovací a stavební postupy, které činí aplikaci méně zranitelnou vůči útokům nebo jejímu využití jako prostředku útoku.

Testy binárního analyzátoru BinScope kontrolují správné použití těchto funkcí souvisejících se zabezpečením:

AllowPartiallyTrustedCallersAttribute (Atribut pro povolení volání částečně důvěryhodných volajících)

Chybová zpráva sady Windows App Certification Kit: Test APTCACheck selhal

Atribut AllowPartiallyTrustedCallersAttribute (APTCA) umožňuje přístup k plně důvěryhodnému kódu z částečně důvěryhodného kódu v podepsaných sestaveních. Při použití atributu APTCA na sestavení mohou volající s částečnou důvěryhodností získat přístup k tomuto sestavení po celou dobu jeho životnosti, což může ohrozit zabezpečení.

Co dělat, když vaše aplikace tento test selže

Nepoužívejte atribut APTCA u sestavení se silným názvem, pokud to váš projekt nevyžaduje a rizika jsou dobře srozumitelná. V případech, kdy je potřeba, se ujistěte, že jsou všechna rozhraní API chráněná odpovídajícími požadavky na zabezpečení přístupu kódu. APTCA nemá žádný vliv, pokud je sestavení součástí aplikace univerzální platformy Windows (UPW).

Poznámky

Tento test se provádí pouze u spravovaného kódu (C#, .NET atd.).

/SafeSEH – ochrana zpracování výjimek

Chybová zpráva sady Windows App Certification Kit: Test SafeSEHCheck selhal

Obslužná rutina pro výjimky se spustí, když aplikace narazí na výjimečný stav, jako je chyba dělení nulou. Vzhledem k tomu, že adresa obslužné rutiny výjimky je uložena v zásobníku při zavolání funkce, může být zranitelná vůči útočníkovi přetečení vyrovnávací paměti, pokud by nějaký škodlivý software přepsal zásobník.

Co dělat, když vaše aplikace tento test selže

Při sestavování aplikace povolte v příkazu linkeru možnost /SAFESEH. Tato možnost je ve výchozím nastavení zapnutá v konfiguracích vydaných verzí sady Visual Studio. Ověřte, že je tato možnost povolená v pokynech k sestavení pro všechny spustitelné moduly ve vaší aplikaci.

Poznámky

Test se neprovádí na 64bitových binárních souborech ani na binárních souborech čipové sady Arm, protože neukládají adresy obslužných rutin výjimek do zásobníku.

Prevence spuštění dat

Chybová zpráva sady Windows App Certification Kit: Test kontroly NXCheck selhal

Tento test ověří, že aplikace nespouští kód uložený v datovém segmentu.

Co dělat, když vaše aplikace tento test selže

Při sestavování aplikace povolte v příkazu linkeru možnost /NXCOMPAT. Tato možnost je ve výchozím nastavení zapnutá ve verzích linkerů, které podporují ochranu před spuštěním dat (DEP).

Poznámky

Doporučujeme otestovat aplikace na procesoru s podporou DEP a opravit jakékoli chyby, které zjistíte jako důsledek DEP.

Randomizace Rozložení Adresního Prostoru

Chybová zpráva sady Windows App Certification Kit: Test kontroly databáze selhal.

Randomizace rozložení adresního prostoru (ASLR) načítá spustitelné obrázky do nepředvídatelných umístění v paměti, což znesnadňuje škodlivému softwaru, který očekává, že se program načte na určité virtuální adrese, aby fungoval předvídatelně. Aplikace a všechny komponenty, které vaše aplikace používá, musí podporovat ASLR.

Co dělat, když vaše aplikace tento test selže

Při sestavování aplikace povolte v příkazu linkeru možnost /DYNAMICBASE. Ověřte, že všechny moduly, které vaše aplikace používá, používají také tuto možnost linkeru.

Poznámky

AsLR obvykle nemá vliv na výkon. V některých scénářích ale dochází k mírnému zlepšení výkonu u 32bitových systémů. Je možné, že výkon může klesnout v silně přeplněném systému, který má mnoho obrázků načtených v mnoha různých umístěních paměti.

Tento test se provádí pouze u aplikací napsaných v nespravovaných jazycích, jako je například použití jazyka C nebo C++.

sdílená sekce PE pro čtení a zápis

Chybová zpráva sady Windows App Certification Kit: Test SharedSectionsCheck selhal.

Binární soubory s zapisovatelnými oddíly, které jsou označené jako sdílené, představují bezpečnostní hrozbu. Nevystavujte aplikace se sdílenými oddíly s možností zápisu, pokud to není nutné. K vytvoření správně zabezpečeného objektu sdílené paměti použijte CreateFileMapping nebo MapViewOfFile .

Co dělat, když vaše aplikace tento test selže

Odeberte všechny sdílené oddíly z aplikace a vytvořte objekty sdílené paměti voláním CreateFileMapping nebo MapViewOfFile se správnými atributy zabezpečení a pak znovu sestavte aplikaci.

Poznámky

Tento test se provádí pouze u aplikací napsaných v nespravovaných jazycích, jako je například použití jazyka C nebo C++.

Kontrola kontejneru aplikace

Chybová zpráva sady Windows App Certification Kit: Test AppContainerCheck se nezdařil.

AppContainerCheck ověřuje, že je nastaven bit appcontainer v hlavičce spustitelného binárního souboru (PE). Aplikace musí mít nastavený bit appcontainer pro všechny soubory .exe a všechny nespravované knihovny DLL, aby mohly správně fungovat.

Co dělat, když vaše aplikace tento test selže

Pokud nativní spustitelný soubor selže v testu, ujistěte se, že jste k sestavení souboru použili nejnovější kompilátor a linker a že v linkeru použijete příznak /appcontainer .

Pokud spravovaný spustitelný soubor selže v testu, ujistěte se, že jste k sestavení aplikace pro UWP použili nejnovější kompilátor a linker, například Microsoft Visual Studio.

Poznámky

Tento test se provádí na všech .exe souborech a na nespravovaných knihovnách DLL.

Spustitelný souborImportsCheck

Chybová zpráva sady Windows App Certification Kit: Test ExecutableImportsCheck se nezdařil.

Přenositelný spustitelný soubor (PE) neprojde tímto testem, pokud je jeho tabulka importu umístěna do oddílu spustitelného kódu. K tomu může dojít, pokud jste povolili slučování .rdata pro obrázek PE nastavením příznaku /merge linkeru Visual C++ jako /merge:.rdata=.text.

Co dělat, když vaše aplikace tento test selže

Neslučujte tabulku importu do sekce spustitelného kódu. Ujistěte se, že příznak /merge linkeru Visual C++ není nastaven na sloučení oddílu ".rdata" do oddílu kódu.

Poznámky

Tento test se provádí na všech binárních kódech s výjimkou čistě spravovaných sestavení.

Kontrola WXCheck

Chybová zpráva sady Windows App Certification Kit: Test kontroly WXCheck se nezdařil.

Kontrola pomáhá zajistit, aby binární soubor neměl žádné stránky, které jsou mapovány jako zapisovatelné a spustitelné. K tomu může dojít v případě, že binární soubor obsahuje zapisovatelný a spustitelný oddíl nebo pokud je hodnota SectionAlignment binárního souboru menší než PAGE-SIZE.

Co dělat, když vaše aplikace tento test selže

Ujistěte se, že binární soubor nemá zapisovatelný nebo spustitelný oddíl a že hodnota SectionAlignment binárního souboru je alespoň rovna jeho PAGE-SIZE.

Poznámky

Tento test se provádí u všech .exe souborů a nativních nespravovaných knihoven DLL.

Spustitelný soubor může mít zapisovatelný a spustitelný oddíl, pokud byl vytvořen s povolenou funkcí Upravit a pokračovat (/ZI). Zakázání možnosti Upravit a Pokračovat způsobí, že neplatný oddíl nebude k dispozici.

VELIKOST STRÁNKY je výchozí SectionAlignment pro spustitelné soubory.

Podepisování privátního kódu

Testuje existenci binárních souborů pro podepisování privátního kódu v rámci balíčku aplikace.

Pozadí

Soubory podepisování privátního kódu by měly být soukromé, protože se můžou používat pro škodlivé účely v případě ohrožení zabezpečení.

Podrobnosti o testu

Testuje soubory v balíčku aplikace, které mají příponu .pfx nebo.snk, což by značilo, že byly zahrnuty privátní podpisové klíče.

Opravné akce

Odeberte z balíčku všechny podpisové klíče privátního kódu (například soubory .pfx a .snk).

Podporovaný test rozhraní API

Otestujte aplikaci, zda používá nějaká nevyhovující rozhraní API.

Pozadí

Aplikace musí používat rozhraní API pro aplikace pro UPW (Windows Runtime nebo podporovaná rozhraní API Win32), aby byla certifikovaná pro Microsoft Store. Tento test také identifikuje situace, kdy spravovaný binární soubor přebírá závislost na funkci mimo schválený profil.

Podrobnosti o testu

  • Ověřuje, že každý binární soubor v balíčku aplikace nemá závislost na rozhraní API Win32, které není podporováno pro vývoj aplikací pro UPW, kontrolou tabulky adres importu binárního souboru.
  • Ověřuje, že každý spravovaný binární soubor v balíčku aplikace nemá závislost na funkci mimo schválený profil.

Opravné akce

Ujistěte se, že je aplikace zkompilována jako release verze a ne jako ladicí verze.

Poznámka Ladicí sestavení aplikace v tomto testu selže, i když aplikace používá pouze rozhraní API pro aplikace pro UWP.

Projděte si chybové zprávy a identifikujte rozhraní API, které aplikace používá, ale které není určeno pro UWP aplikace.

Poznámka Aplikace C++, které jsou sestavené v debugovací konfiguraci, při tomto testu selžou, i když konfigurace používá pouze rozhraní API ze sady Windows SDK pro aplikace pro UWP. Další informace najdete v tématu Alternativy k rozhraním API pro Windows v aplikacích pro UPW .

Testy výkonnosti

Aplikace musí rychle reagovat na interakci uživatelů a systémové příkazy, aby mohla prezentovat rychlé a proměnlivé uživatelské prostředí.

Vlastnosti počítače, na kterém se test provádí, mohou ovlivnit výsledky testu. Prahové hodnoty testů výkonnosti pro certifikaci aplikací jsou nastavené tak, aby počítače s nízkým výkonem splňovaly očekávání zákazníka s rychlým a proměnlivým prostředím. Pokud chcete zjistit výkon aplikace, doporučujeme testovat na počítači s nízkým výkonem, například na počítači s procesorem Intel Atom s rozlišením 1366x768 (nebo vyšší) a rotačním pevným diskem (na rozdíl od pevného disku SSD).

Generování bajtového kódu

Pro optimalizaci výkonu a zrychlení doby provádění JavaScriptu se javascriptové soubory s příponou .js při nasazování aplikace generují jako bytový kód. To výrazně zlepšuje doby spouštění a průběžnou dobu spuštění pro operace JavaScriptu.

Podrobnosti o testu

Zkontroluje nasazení aplikace a ověří, jestli byly všechny soubory .js převedeny na bajtové kódy.

Nápravná akce

Pokud tento test selže, při řešení problému zvažte následující:

  • Ověřte, že je povolené protokolování událostí.
  • Ověřte, že všechny soubory JavaScriptu jsou syntakticky platné.
  • Ověřte, že jsou odinstalovány všechny předchozí verze aplikace.
  • Vylučte identifikované soubory z balíčku aplikace.

Optimalizované odkazy na vazby

Při použití vazeb by měly být winJS.Binding.optimizeBindingReferences nastaveny na hodnotu true, aby se optimalizovalo využití paměti.

Podrobnosti o testu

Ověřte hodnotu WinJS.Binding.optimizeBindingReferences.

Nápravná akce

Nastavte WinJS.Binding.optimizeBindingReferences na true v JavaScriptu aplikace.

Test prostředků manifestu aplikace

Ověření prostředků aplikace

Aplikace se nemusí nainstalovat, pokud jsou řetězce nebo obrázky deklarované v manifestu vaší aplikace nesprávné. Pokud se aplikace nainstaluje s těmito chybami, nemusí se logo vaší aplikace nebo jiné obrázky používané vaší aplikací zobrazit správně.

Podrobnosti o testu

Kontroluje prostředky definované v manifestu aplikace, aby se ujistil, že jsou přítomné a platné.

Nápravná akce

Jako doprovodné materiály použijte následující tabulku.

Zpráva o chyběKomentáře

Image {image name} definuje kvalifikátory Scale i TargetSize; můžete definovat pouze jeden kvalifikátor najednou.

Obrázky můžete přizpůsobit pro různá rozlišení.

Ve skutečné zprávě obsahuje {image name} název obrázku s chybou.

Ujistěte se, že každý obrázek definuje jako kvalifikátor Měřítko nebo TargetSize.

Obrázek {název obrázku} neodpovídá omezením velikosti.

Ujistěte se, že všechny image aplikací dodržují správná omezení velikosti.

Ve skutečné zprávě obsahuje {image name} název obrázku s chybou.

V balíčku chybí obrázek {image name}.

Chybí požadovaný obrázek.

Ve skutečné zprávě obsahuje {image name} název chybějícího obrázku.

Obrázek {image name} není platný obrázkový soubor.

Ujistěte se, že všechny obrázky aplikace dodržují správná omezení typu formátu souboru.

Ve skutečné zprávě obsahuje {image name} název obrázku, který není platný.

Obrázek BadgeLogo má hodnotu ABGR {value} na pozici (x, y), která není platná. Pixel musí být bílý (##FFFFFF) nebo průhledný (00######).

Logo odznáčku je obrázek, který se zobrazí vedle oznámení o odznáčku a identifikuje aplikaci na zamykací obrazovce. Tento obrázek musí být monochromatic (může obsahovat pouze bílé a průhledné pixely).

Ve skutečné zprávě obsahuje {value} hodnotu barvy v obrázku, která není platná.

Obrázek BadgeLogo má hodnotu ABGR {value} na pozici (x, y), která není platná pro bílý obrázek s vysokým kontrastem. Pixel musí být (##2A2A2A) nebo tmavší nebo průhledný (00######).

Logo odznáčku je obrázek, který se zobrazí vedle oznámení o odznáčku a identifikuje aplikaci na zamykací obrazovce. Vzhledem k tomu, že logo odznaku se zobrazuje na bílém pozadí, když je v režimu vysokého kontrastu s bílou, musí se jednat o tmavou verzi normálního loga odznaku. V případě vysokého kontrastu na bílém pozadí může logo odznáčku obsahovat pouze pixely, které jsou tmavší než (##2A2A2A) nebo průhledné.

Ve skutečné zprávě obsahuje {value} hodnotu barvy v obrázku, která není platná.

Obrázek musí definovat alespoň jednu variantu bez kvalifikátoru TargetSize. Musí definovat kvalifikátor škálování nebo ponechat měřítko a cílovou velikost nezadané, kdy výchozí hodnota je Scale-100.

Další informace najdete v tématu Responzivní návrh 101 pro aplikace Universal Windows Platform a Pokyny pro prostředky aplikací.

V balíčku chybí soubor resources.pri.

Pokud máte v manifestu aplikace lokalizovatelný obsah, ujistěte se, že balíček vaší aplikace obsahuje platný soubor resources.pri.

Soubor resources.pri musí obsahovat mapu prostředků s názvem, který odpovídá názvu balíčku {package full name}.

Tato chyba se může zobrazit, pokud se manifest změnil a název mapy prostředků v souboru resources.pri již neodpovídá názvu balíčku v manifestu.

Ve skutečné zprávě obsahuje {package full name} název balíčku, který musí obsahovat resources.pri.

Pokud chcete tento problém vyřešit, musíte znovu sestavit resources.pri a nejjednodušší způsob, jak to provést opětovným sestavením balíčku aplikace.

Soubor resources.pri nesmí mít povolenou funkci AutoMerge.

MakePRI.exe podporuje možnost s názvem AutoMerge. Výchozí hodnota AutoMerge je vypnutá. Když je tato funkce povolená, autoMerge sloučí prostředky jazykové sady aplikace do jednoho souboru resources.pri za běhu. Nedoporučujeme to pro aplikace, které chcete distribuovat prostřednictvím Microsoft Storu. Resources.pri aplikace, která je distribuovaná prostřednictvím Microsoft Storu, musí být v kořenovém adresáři balíčku aplikace a musí obsahovat všechny jazykové odkazy, které aplikace podporuje.

Řetězec {string} selhal s omezením maximální délky {number} znaků.

Projděte si požadavky na balíček aplikace .

Ve skutečné zprávě je řetězec {string} nahrazen řetězcem s chybou a {number} obsahuje maximální délku.

Řetězec {string} nesmí obsahovat úvodní nebo koncové prázdné znaky.

Schéma prvků v manifestu aplikace neumožňuje počáteční nebo koncové prázdné znaky.

Ve skutečné zprávě je {string} nahrazen řetězcem s chybou.

Ujistěte se, že žádná z lokalizovaných hodnot polí manifestu v resources.pri nemá počáteční nebo koncové prázdné znaky.

Řetězec musí být neprázdný (větší než nula v délce).

Další informace najdete v tématu Požadavky na balíček aplikace.

V souboru resources.pri není zadaný žádný výchozí prostředek.

Více informací najdete v Pokynech pro prostředky aplikace.

Ve výchozí konfiguraci sestavení Visual Studio zahrnuje do balíčku aplikace pouze obrazové prostředky se škálováním 200 při generování balíčků, díky čemuž jsou ostatní prostředky umístěny do balíčku prostředků. Ujistěte se, že buď zahrnete obrázkové zdroje ve škále 200, nebo nakonfigurujete projekt tak, aby zahrnoval zdroje, které máte.

V souboru resources.pri není zadaná žádná hodnota prostředku.

Ujistěte se, že manifest aplikace obsahuje platné prostředky definované v souboru resources.pri.

Soubor obrázku {filename} musí být menší než 204800 bajtů.\*\*

Zmenšete velikost označených obrázků.

Soubor {filename} nesmí obsahovat oddíl zpětné mapy.\*\*

I když se při volání do makepri.exegeneruje reverzní mapa během ladění F5 sady Visual Studio, lze ji při generování souboru pri odebrat spuštěním makepri.exe bez parametru /m.

\*\* Označuje, že test byl přidán do sady Windows App Certification Kit 3.3 pro Windows 8.1 a je použitelný pouze při použití této verze sady nebo novější.

 

Ověření značky

Očekává se, že aplikace pro UPW budou dokončené a plně funkční. Aplikace používající výchozí obrázky (ze šablon nebo ukázek sady SDK) představují špatné uživatelské prostředí a nelze je snadno identifikovat v katalogu obchodů.

Podrobnosti o testu

Test ověří, jestli image používané aplikací nejsou výchozími obrázky z ukázek sady SDK nebo ze sady Visual Studio.

Opravné akce

Nahraďte výchozí obrázky něčím odlišným a reprezentativním pro vaši aplikaci.

Test ladění konfigurace

Otestujte aplikaci, abyste se ujistili, že se nejedná o ladicí verzi.

Pozadí

Aby byly aplikace certifikované pro Microsoft Store, nesmí být kompilovány pro ladění a nesmí odkazovat na ladicí verze spustitelného souboru. Kromě toho musíte vytvořit kód, který je optimalizovaný pro aplikaci, aby tento test prošel.

Podrobnosti o testu

Otestujte aplikaci a ujistěte se, že se nejedná o sestavení ladění a není propojená s žádnými ladicími frameworky.

Opravné akce

  • Před odesláním aplikace do Microsoft Storu vytvořte aplikaci jako build verze.
  • Ujistěte se, že máte nainstalovanou správnou verzi rozhraní .NET Framework.
  • Ujistěte se, že aplikace není propojená k ladicím verzím rámce a že se sestavuje s vydanou verzí. Pokud tato aplikace obsahuje komponenty .NET, ujistěte se, že máte nainstalovanou správnou verzi rozhraní .NET Framework.

Test kódování souborů

Kódování souborů UTF-8

Pozadí

Soubory HTML, CSS a JavaScriptu musí být kódovány ve formátu UTF-8 s odpovídajícím znakem pořadí bajtů (BOM), aby bylo možné využívat ukládání bajtů do mezipaměti a vyhnout se určitým chybovým stavům za běhu.

Podrobnosti o testu

Otestujte obsah balíčků aplikací a ujistěte se, že používají správné kódování souborů.

Nápravná akce

Otevřete ovlivněný soubor a v nabídce Soubor v sadě Visual Studio vyberte Uložit jako. Vyberte rozevírací ovládací prvek vedle tlačítka Uložit a vyberte Uložit s kódováním. V dialogovém okně Upřesnit možnosti uložení zvolte možnost Unicode (UTF-8 s podpisem) a klikněte na OK.

Test na úrovni funkcí Direct3D

Podpora na úrovni funkcí Direct3D

Otestuje aplikace Microsoft Direct3D, aby se zajistilo, že na zařízeních se starším grafickým hardwarem nedojde k chybovému ukončení.

Pozadí

Microsoft Store vyžaduje, aby se všechny aplikace používající Direct3D vykreslovaly správně nebo bez problémů na grafických kartách na úrovni funkcí 9–1.

Vzhledem k tomu, že uživatelé můžou po instalaci aplikace změnit grafický hardware v zařízení, pokud zvolíte minimální úroveň funkce vyšší než 9 až 1, musí aplikace při spuštění zjistit, jestli aktuální hardware splňuje minimální požadavky. Pokud nejsou splněny minimální požadavky, aplikace musí uživateli zobrazit zprávu s podrobnostmi o požadavcích Direct3D. Pokud se aplikace stáhne na zařízení, se kterým není kompatibilní, měla by také zjistit, že při spuštění a zobrazí zprávu zákazníkovi s podrobnostmi o požadavcích.

Podrobnosti o testu

Test ověří, zda se aplikace vykreslují přesně na úrovni funkcí 9-1.

Nápravná akce

Ujistěte se, že se aplikace správně vykresluje na úrovni funkce Direct3D 9–1, i když očekáváte, že bude spuštěná na vyšší úrovni funkce. Další informace najdete v tématu Vývoj pro různé úrovně funkcí Direct3D .

Direct3D ořez po pozastavení

Poznámka Tento test platí jenom pro aplikace UPW vyvinuté pro Windows 8.1 a novější.

Pozadí

Pokud aplikace na svém zařízení Direct3D nezavolá Trim , aplikace nevyvolá paměť přidělenou pro dřívější 3D práci. Tím se zvyšuje riziko ukončení aplikací z důvodu systémového zatížení paměti.

Podrobnosti o testu

Kontroluje, zda aplikace dodržují požadavky d3d a zajišťuje, aby aplikace při zpětném volání suspend používaly nové rozhraní API Trim.

Nápravná akce

Aplikace by měla kdykoli před pozastavením zavolat API Trim na rozhraní IDXGIDevice3.

Test schopností aplikace

Speciální možnosti použití

Pozadí

Speciální možnosti použití jsou určeny pro velmi specifické scénáře. Tyto funkce můžou používat jenom firemní účty.

Podrobnosti o testu

Ověřte, jestli aplikace deklaruje některou z následujících funkcí:

  • Podnikové ověřování
  • Sdílené uživatelské certifikáty
  • Knihovna dokumentů

Pokud jsou některé z těchto funkcí deklarovány, test uživateli zobrazí upozornění.

Opravné akce

Pokud to vaše aplikace nevyžaduje, zvažte odebrání speciální možnosti použití. Kromě toho se použití těchto možností řídí další kontrolou zásad onboardingu.

Ověřování metadat prostředí Windows Runtime

Pozadí

Zajišťuje, že komponenty, které jsou dodávány v aplikaci, odpovídají systému typů Windows Runtime.

Podrobnosti o testu

Ověřuje, že soubory .winmd v balíčku odpovídají pravidlům prostředí Windows Runtime.

Opravné akce

  • Test atributu ExclusiveTo: Ujistěte se, že třídy prostředí Windows Runtime neimplementují rozhraní, která jsou označena jako ExclusiveTo jiné třídy.
  • Test umístění typu: Ujistěte se, že metadata pro všechny typy prostředí Windows Runtime se nacházejí v souboru winmd, který má nejdelší název odpovídající oboru názvů v balíčku aplikace.
  • Test citlivosti na velikost písmen názvu typu: Ujistěte se, že všechny typy Windows Runtime mají v balíčku aplikace unikátní názvy, které nerozlišují velká a malá písmena. Také se ujistěte, že žádný název typu UWP není také používán jako název oboru názvů ve vašem balíčku aplikací.
  • Test správnosti názvu typu: Ujistěte se, že globální obor názvů ani obor názvů nejvyšší úrovně Windows neobsahuje žádné typy prostředí Windows Runtime.
  • Obecný test správnosti metadat: Ujistěte se, že kompilátor, který používáte k vygenerování typů, je aktuální se specifikacemi prostředí Windows Runtime.
  • Test vlastností: Ujistěte se, že všechny vlastnosti třídy Windows Runtime mají metodu get (metody set jsou volitelné). Ujistěte se, že typ návratové hodnoty metody get odpovídá typu vstupního parametru set metody pro všechny vlastnosti v typech prostředí Windows Runtime.

Testování sanity balíčků

Test souborů vhodných pro platformu

Aplikace, které instalují mixované binární soubory, mohou havarovat nebo se nespustí správně v závislosti na architektuře procesoru uživatele.

Pozadí

Tento test ověří binární soubory v balíčku aplikace pro konflikty architektury. Balíček aplikace by neměl obsahovat binární soubory, které nelze použít v architektuře procesoru zadané v manifestu. Zahrnutí nepodporovaných binárních souborů může vést k chybovému ukončení aplikace nebo zbytečnému zvýšení velikosti balíčku aplikace.

Podrobnosti o testu

Ověřuje, zda je v záhlaví PE každého souboru uvedena správná bitová hodnota, pokud je porovnána s deklarací architektury procesoru v balíčku aplikace.

Nápravná akce

Postupujte podle těchto pokynů a ujistěte se, že balíček aplikace obsahuje jenom soubory podporované architekturou uvedenou v manifestu aplikace:

  • Pokud je architektura cílového procesoru pro vaši aplikaci neutrálním typem procesoru, balíček aplikace nemůže obsahovat soubory typu x86, x64 nebo Arm typu binárního souboru nebo typu obrázku.

  • Pokud je architektura cílového procesoru pro vaši aplikaci typu procesoru x86, balíček aplikace musí obsahovat pouze binární soubory x86 nebo soubory typu obrázku. Pokud balíček obsahuje x64 nebo Arm binární či obrazové typy, test selže.

  • Pokud je architektura cílového procesoru pro vaši aplikaci typu procesoru x64, musí balíček aplikace obsahovat binární soubory x64 nebo soubory typu obrázku. Všimněte si, že v tomto případě může balíček obsahovat také soubory x86, ale primární prostředí aplikace by mělo využívat binární soubor x64.

    Pokud ale balíček obsahuje binární soubory arm nebo soubory typu image nebo obsahuje pouze binární soubory x86 nebo soubory typu image, test selže.

  • Pokud je architektura cílového procesoru pro vaši aplikaci typ procesoru Arm, balíček aplikace musí obsahovat pouze binární soubory arm nebo soubory typu image. Pokud balíček obsahuje binární soubory x64 nebo x86 nebo typu obrázku, test selže.

Test podporované struktury adresářů

Ověřuje, že aplikace nevytvoří podadresáře jako součást instalace, které jsou delší než MAX-PATH.

Pozadí

Komponenty operačního systému (včetně Trident, WWAHost atd.) jsou interně omezené na MAX-PATH pro cesty k systému souborů a nebudou správně fungovat pro delší cesty.

Podrobnosti o testu

Ověřuje, že žádná cesta v instalačním adresáři aplikace nepřekračuje max-PATH.

Nápravná akce

Použijte kratší adresářovou strukturu a název souboru.

Test využití prostředků

WinJS – test úlohy na pozadí

Test úloh na pozadí WinJS zajišťuje, aby aplikace v JavaScriptu měly správné příkazy zavřít, aby aplikace nespotřebovávají baterii.

Pozadí

Aplikace, které mají úlohy na pozadí JavaScriptu, musí jako poslední příkaz v úloze na pozadí volat Close(). Aplikace, které to neudělají, by mohly systému zabránit v návratu do úsporného režimu připojeného režimu a vést k vyprázdnění baterie.

Podrobnosti o testu

Pokud aplikace nemá soubor úlohy na pozadí zadaný v manifestu, test projde. V opačném případě test parsuje soubor úlohy javascriptového pozadí zadaný v balíčku aplikace a vyhledá příkaz Close(). Pokud se najde, test projde; jinak test selže.

Nápravná akce

Aktualizujte kód JavaScriptu na pozadí tak, aby volal close() správně.