Bagikan melalui


Tes Windows App Certification Kit

Kit Sertifikasi Aplikasi Windows berisi sejumlah pengujian yang membantu memastikan aplikasi Anda siap diterbitkan ke Microsoft Store. Pengujian tercantum di bawah ini dengan kriteria, detail, dan tindakan yang disarankan dalam kasus kegagalan.

Pengujian penyebaran dan peluncuran

Memantau aplikasi selama pengujian sertifikasi untuk merekam saat crash atau macet.

Latar belakang

Aplikasi yang berhenti merespons atau crash dapat menyebabkan pengguna kehilangan data dan memiliki pengalaman yang buruk.

Kami mengharapkan aplikasi berfungsi penuh tanpa menggunakan mode kompatibilitas Windows, pesan AppHelp, atau perbaikan kompatibilitas.

Aplikasi tidak boleh mencantumkan DLL untuk dimuat di kunci registri HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-DL.

Detail pengujian

Kami menguji ketahanan dan stabilitas aplikasi selama pengujian sertifikasi.

Kit Sertifikasi Aplikasi Windows memanggil IApplicationActivationManager::ActivateApplication untuk meluncurkan aplikasi. Agar ActivateApplication meluncurkan aplikasi, Kontrol Akun Pengguna (UAC) harus diaktifkan dan resolusi layar harus minimal 1024 x 768 atau 768 x 1024. Jika salah satu kondisi tidak terpenuhi, aplikasi Anda akan gagal dalam pengujian ini.

Tindakan korektif

Pastikan UAC diaktifkan pada komputer pengujian.

Pastikan Anda menjalankan pengujian pada komputer dengan layar yang cukup besar.

Jika aplikasi Anda gagal diluncurkan dan platform pengujian Anda memenuhi prasyarat ActivateApplication, Anda dapat memecahkan masalah dengan meninjau log peristiwa aktivasi. Untuk menemukan entri ini di log peristiwa:

  1. Buka eventvwr.exe dan navigasikan ke folder Log Aplikasi dan Layanan\Microsoft\Windows\Immersive-Shell.
  2. Filter tampilan untuk menampilkan Id Peristiwa: 5900-6000.
  3. Tinjau entri log untuk info yang mungkin menjelaskan mengapa aplikasi tidak diluncurkan.

Pecahkan masalah file dengan masalah, identifikasi, dan perbaiki masalahnya. Bangun ulang dan uji ulang aplikasi. Anda juga dapat memeriksa apakah file cadangan dibuat di folder log Windows App Certification Kit yang dapat digunakan untuk men-debug aplikasi Anda.

Uji Peluncuran Versi Platform

Memeriksa apakah aplikasi Windows dapat berjalan pada versi OS yang akan datang. Pengujian ini secara historis hanya diterapkan ke alur kerja aplikasi Desktop, tetapi ini sekarang diaktifkan untuk alur kerja Store dan Platform Windows Universal (UWP).

Latar belakang

Info versi sistem operasi telah membatasi penggunaan untuk Microsoft Store. Ini sering kali salah digunakan oleh aplikasi untuk memeriksa versi OS sehingga aplikasi dapat memberi pengguna fungsionalitas yang khusus untuk versi OS.

Detail pengujian

Kit Sertifikasi Aplikasi Windows menggunakan HighVersionLie untuk mendeteksi cara aplikasi memeriksa versi OS. Jika aplikasi crash, aplikasi akan gagal dalam pengujian ini.

Tindakan korektif

Aplikasi harus menggunakan fungsi pembantu Api Versi untuk memeriksa hal ini. Lihat Versi Sistem Operasi untuk informasi selengkapnya.

Validasi handler pembatalan tugas latar belakang

Ini memverifikasi bahwa aplikasi memiliki handler pembatalan untuk tugas latar belakang yang dideklarasikan. Perlu ada fungsi khusus yang akan dipanggil ketika tugas dibatalkan. Pengujian ini hanya diterapkan untuk aplikasi yang disebarkan.

Latar belakang

Aplikasi toko dapat mendaftarkan proses yang berjalan di latar belakang. Misalnya, aplikasi email dapat melakukan ping server dari waktu ke waktu. Namun, jika OS membutuhkan sumber daya ini, os akan membatalkan tugas latar belakang, dan aplikasi harus menangani pembatalan ini dengan lancar. Aplikasi yang tidak memiliki handler pembatalan mungkin mengalami crash atau tidak ditutup saat pengguna mencoba menutup aplikasi.

Detail pengujian

Aplikasi ini diluncurkan, ditangguhkan, dan bagian non-latar belakang aplikasi dihentikan. Kemudian tugas latar belakang yang terkait dengan aplikasi ini dibatalkan. Status aplikasi diperiksa, dan jika aplikasi masih berjalan maka akan gagal dalam pengujian ini.

Tindakan korektif

Tambahkan handler pembatalan ke aplikasi Anda. Untuk informasi selengkapnya, lihat Mendukung aplikasi Anda dengan tugas latar belakang.

Jumlah aplikasi

Ini memverifikasi bahwa paket aplikasi (.msix, .appx, atau app bundle) berisi satu aplikasi. Ini diubah dalam kit menjadi tes mandiri.

Latar belakang

Pengujian ini diimplementasikan sesuai kebijakan Store.

Detail pengujian

Untuk aplikasi Windows Phone 8.1, pengujian memverifikasi jumlah total paket .appx dalam bundel adalah < 512, hanya ada satu paket utama dalam bundel, dan bahwa arsitektur paket utama dalam bundel ditandai sebagai Arm atau netral.

Untuk aplikasi Windows 10, pengujian memverifikasi bahwa nomor revisi dalam versi bundel diatur ke 0.

Tindakan korektif

Pastikan paket aplikasi dan bundel memenuhi persyaratan di atas dalam Detail pengujian.

Pengujian kepatuhan manifes aplikasi

Uji konten manifes aplikasi untuk memastikan kontennya benar.

Latar belakang

Aplikasi harus memiliki manifes aplikasi yang diformat dengan benar.

Detail pengujian

Memeriksa manifes aplikasi untuk memverifikasi bahwa konten sudah benar seperti yang dijelaskan dalam persyaratan paket Aplikasi.

  • Ekstensi dan protokol file

    Aplikasi Anda dapat mendeklarasikan ekstensi file yang ingin dikaitkan dengannya. Digunakan secara tidak benar, aplikasi dapat mendeklarasikan sejumlah besar ekstensi file, yang sebagian besar bahkan mungkin tidak digunakan, menghasilkan pengalaman pengguna yang buruk. Pengujian ini akan menambahkan pemeriksaan untuk membatasi jumlah ekstensi file yang dapat dikaitkan dengan aplikasi.

  • Aturan Dependensi Kerangka Kerja

    Pengujian ini memberlakukan persyaratan bahwa aplikasi mengambil dependensi yang sesuai pada UWP. Jika ada dependensi yang tidak pantas, pengujian ini akan gagal.

    Jika ada ketidakcocokan antara versi OS yang diterapkan aplikasi dan dependensi kerangka kerja yang dibuat, pengujian akan gagal. Pengujian juga akan gagal jika aplikasi mengacu pada versi pratinjau dll kerangka kerja.

  • Verifikasi Komunikasi Antar proses (IPC)

    Pengujian ini memberlakukan persyaratan bahwa aplikasi UWP tidak berkomunikasi di luar kontainer aplikasi ke komponen Desktop. Komunikasi antarproses hanya ditujukan untuk aplikasi yang dimuat di samping. Aplikasi yang menentukan ActivatableClassAttribute dengan nama yang sama dengan "DesktopApplicationPath" akan gagal dalam pengujian ini.

Tindakan korektif

Tinjau manifes aplikasi terhadap persyaratan yang dijelaskan dalam persyaratan paket Aplikasi.

pengujian fitur Keamanan Windows

Latar belakang

Mengubah perlindungan keamanan Windows default dapat membuat pelanggan berisiko meningkat.

Detail pengujian

Menguji keamanan aplikasi dengan menjalankan BinScope Binary Analyzer.

Tes BinScope Binary Analyzer memeriksa file biner aplikasi untuk memeriksa praktik pengodean dan pembuatan yang membuat aplikasi kurang rentan terhadap serangan atau digunakan sebagai vektor serangan.

BinScope Binary Analyzer menguji penggunaan fitur terkait keamanan berikut dengan benar.

  • Tes Binary Analyzer Binscope
  • Penandatanganan Kode Privat

Tes Binary Analyzer Binscope

Tes BinScope Binary Analyzer memeriksa file biner aplikasi untuk memeriksa praktik pengodean dan pembuatan yang membuat aplikasi kurang rentan terhadap serangan atau digunakan sebagai vektor serangan.

BinScope Binary Analyzer menguji penggunaan fitur terkait keamanan ini dengan benar:

AllowPartiallyTrustedCallersAttribute

Pesan kesalahan Kit Sertifikasi Aplikasi Windows: Pengujian APTCACheck gagal

Atribut AllowPartiallyTrustedCallersAttribute (APTCA) memungkinkan akses ke kode yang sepenuhnya tepercaya dari kode tepercaya sebagian dalam rakitan yang ditandatangani. Saat Anda menerapkan atribut APTCA ke assembly, pemanggil yang tepercaya sebagian dapat mengakses assembly tersebut untuk masa pakai assembly, yang dapat membahayakan keamanan.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Jangan gunakan atribut APTCA pada rakitan bernama yang kuat kecuali proyek Anda memerlukannya dan risikonya dipahami dengan baik. Jika diperlukan, pastikan bahwa semua API dilindungi dengan tuntutan keamanan akses kode yang sesuai. APTCA tidak berpengaruh ketika assembly adalah bagian dari aplikasi Platform Windows Universal (UWP).

Keterangan

Pengujian ini hanya dilakukan pada kode terkelola (C#, .NET, dll.).

Perlindungan Penanganan Pengecualian /SafeSEH

Pesan kesalahan Windows App Certification Kit: SafeSEHCheck Test gagal

Handler pengecualian berjalan saat aplikasi mengalami kondisi luar biasa, seperti kesalahan membagi dengan nol. Karena alamat handler pengecualian disimpan di tumpukan ketika fungsi dipanggil, itu bisa rentan terhadap penyerang luapan buffer jika beberapa perangkat lunak berbahaya menimpa tumpukan.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Aktifkan opsi /SAFESEH di perintah linker saat Anda membuat aplikasi. Opsi ini aktif secara default dalam konfigurasi Rilis Visual Studio. Verifikasi opsi ini diaktifkan dalam instruksi build untuk semua modul yang dapat dieksekusi di aplikasi Anda.

Keterangan

Pengujian ini tidak dilakukan pada biner 64-bit atau biner chipset Arm karena tidak menyimpan alamat handler pengecualian pada tumpukan.

Pencegahan Eksekusi Data

Pesan kesalahan Kit Sertifikasi Aplikasi Windows: Pengujian NXCheck gagal

Pengujian ini memverifikasi bahwa aplikasi tidak menjalankan kode yang disimpan di segmen data.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Aktifkan opsi /NXCOMPAT di perintah linker saat Anda membuat aplikasi. Opsi ini aktif secara default dalam versi linker yang mendukung Pencegahan Eksekusi Data (DEP).

Keterangan

Kami menyarankan agar Anda menguji aplikasi Anda pada CPU berkemampuan DEP dan memperbaiki kegagalan apa pun yang Anda temukan dari DEP.

Pengacakan Tata Letak Ruang Alamat

Pesan kesalahan Kit Sertifikasi Aplikasi Windows: Pengujian DBCheck gagal

Pengacakan Tata Letak Ruang Alamat (ASLR) memuat gambar yang dapat dieksekusi ke lokasi yang tidak dapat diprediksi dalam memori, yang membuatnya lebih sulit bagi perangkat lunak berbahaya yang mengharapkan program dimuat pada alamat virtual tertentu untuk beroperasi secara terprediksi. Aplikasi Anda dan semua komponen yang digunakan aplikasi Anda harus mendukung ASLR.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Aktifkan opsi /DYNAMICBASE di perintah linker saat Anda membuat aplikasi. Verifikasi bahwa semua modul yang digunakan aplikasi Anda juga menggunakan opsi linker ini.

Keterangan

Biasanya, ASLR tidak memengaruhi performa. Tetapi dalam beberapa skenario ada sedikit peningkatan performa pada sistem 32-bit. Ada kemungkinan bahwa performa dapat diturunkan dalam sistem yang sangat padat yang memiliki banyak gambar yang dimuat di banyak lokasi memori yang berbeda.

Pengujian ini hanya dilakukan pada aplikasi yang ditulis dalam bahasa yang tidak dikelola, seperti dengan menggunakan C atau C++.

Baca/Tulis Bagian PE Bersama

Pesan kesalahan Windows App Certification Kit: SharedSectionsCheck Test gagal.

File biner dengan bagian bisa-tulis yang ditandai sebagai bersama adalah ancaman keamanan. Jangan buat aplikasi dengan bagian bisa-tulis bersama kecuali diperlukan. Gunakan CreateFileMapping atau MapViewOfFile untuk membuat objek memori bersama yang diamankan dengan benar.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Hapus bagian bersama apa pun dari aplikasi dan buat objek memori bersama dengan memanggil CreateFileMapping atau MapViewOfFile dengan atribut keamanan yang tepat lalu buat ulang aplikasi Anda.

Keterangan

Pengujian ini hanya dilakukan pada aplikasi yang ditulis dalam bahasa yang tidak dikelola, seperti dengan menggunakan C atau C++.

AppContainerCheck

Pesan kesalahan Windows App Certification Kit: Pengujian AppContainerCheck gagal.

AppContainerCheck memverifikasi bahwa bit appcontainer di header portable executable (PE) dari biner yang dapat dieksekusi diatur. Aplikasi harus mengatur bit appcontainer pada semua file .exe dan semua DLL yang tidak dikelola untuk dijalankan dengan benar.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Jika file executable asli gagal dalam pengujian, pastikan Anda menggunakan pengkompilasi dan linker terbaru untuk membangun file dan Anda menggunakan bendera /appcontainer pada linker.

Jika executable terkelola gagal dalam pengujian, pastikan Anda menggunakan pengkompilasi dan linker terbaru, seperti Microsoft Visual Studio, untuk membangun aplikasi UWP.

Keterangan

Pengujian ini dilakukan pada semua file .exe dan pada DLL yang tidak dikelola.

ExecutableImportsCheck

Pesan kesalahan Windows App Certification Kit: ExecutableImportsCheck Test gagal.

Gambar portabel yang dapat dieksekusi (PE) gagal dalam pengujian ini jika tabel impornya telah ditempatkan di bagian kode yang dapat dieksekusi. Ini dapat terjadi jika Anda mengaktifkan penggabungan .rdata untuk gambar PE dengan mengatur bendera /merge dari linker Visual C++ sebagai /merge:.rdata=.text.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Jangan gabungkan tabel impor ke dalam bagian kode yang dapat dieksekusi. Pastikan bahwa bendera /merge dari linker Visual C++ tidak diatur untuk menggabungkan bagian ".rdata" ke dalam bagian kode.

Keterangan

Pengujian ini dilakukan pada semua kode biner kecuali rakitan yang dikelola murni.

WXCheck

Pesan kesalahan Windows App Certification Kit: Pengujian WXCheck gagal.

Pemeriksaan ini membantu memastikan bahwa biner tidak memiliki halaman apa pun yang dipetakan sebagai dapat ditulis dan dapat dieksekusi. Ini dapat terjadi jika biner memiliki bagian yang dapat ditulis dan dapat dieksekusi atau jika SectionAlignment biner kurang dari PAGE-SIZE.

Apa yang harus dilakukan jika aplikasi Anda gagal dalam pengujian ini

Pastikan bahwa biner tidak memiliki bagian yang dapat ditulis atau dapat dieksekusi dan bahwa nilai SectionAlignment biner setidaknya sama dengan UKURAN HALAMANnya.

Keterangan

Pengujian ini dilakukan pada semua file .exe dan pada DLL asli yang tidak dikelola.

Executable mungkin memiliki bagian yang dapat ditulis dan dapat dieksekusi jika telah dibuat dengan Edit dan Lanjutkan diaktifkan (/ZI). Menonaktifkan Edit dan Lanjutkan akan menyebabkan bagian yang tidak valid tidak ada.

UKURAN HALAMAN adalah SectionAlignment default untuk executable.

Penandatanganan Kode Privat

Pengujian untuk keberadaan biner penandatanganan kode privat dalam paket aplikasi.

Latar belakang

File penandatanganan kode privat harus dijaga kerahasiaannya karena dapat digunakan untuk tujuan berbahaya jika disusupi.

Detail pengujian

Pengujian untuk file dalam paket aplikasi yang memiliki ekstensi .pfx atau.snk yang akan menunjukkan bahwa kunci penandatanganan privat disertakan.

Tindakan korektif

Hapus kunci penandatanganan kode privat apa pun (misalnya, file .pfx dan .snk) dari paket.

Pengujian API yang didukung

Uji aplikasi untuk penggunaan API yang tidak patuh.

Latar belakang

Aplikasi harus menggunakan API untuk aplikasi UWP (Windows Runtime atau API Win32 yang didukung) untuk disertifikasi untuk Microsoft Store. Pengujian ini juga mengidentifikasi situasi di mana biner terkelola mengambil dependensi pada fungsi di luar profil yang disetujui.

Detail pengujian

  • Memverifikasi bahwa setiap biner dalam paket aplikasi tidak memiliki dependensi pada API Win32 yang tidak didukung untuk pengembangan aplikasi UWP dengan memeriksa tabel alamat impor biner.
  • Memverifikasi bahwa setiap biner terkelola dalam paket aplikasi tidak memiliki dependensi pada fungsi di luar profil yang disetujui.

Tindakan korektif

Pastikan aplikasi dikompilasi sebagai build rilis dan bukan build debug.

Perhatikan Build debug aplikasi akan gagal dalam pengujian ini meskipun aplikasi hanya menggunakan API untuk aplikasi UWP.

Tinjau pesan kesalahan untuk mengidentifikasi API yang digunakan aplikasi yang bukan API untuk aplikasi UWP.

Perhatikan aplikasi C++ yang dibangun dalam konfigurasi debug akan gagal dalam pengujian ini meskipun konfigurasi hanya menggunakan API dari Windows SDK untuk aplikasi UWP. Lihat, Alternatif untuk API Windows di aplikasi UWP untuk informasi selengkapnya.

Pengujian performa

Aplikasi harus merespons interaksi pengguna dan perintah sistem dengan cepat untuk menyajikan pengalaman pengguna yang cepat dan lancar.

Karakteristik komputer tempat pengujian dilakukan dapat memengaruhi hasil pengujian. Ambang batas pengujian performa untuk sertifikasi aplikasi ditetapkan singgh komputer berdaya rendah memenuhi harapan pelanggan akan pengalaman yang cepat dan lancar. Untuk menentukan performa aplikasi Anda, kami sarankan Anda menguji pada komputer berdaya rendah, seperti komputer berbasis prosesor Intel Atom dengan resolusi layar 1366x768 (atau lebih tinggi) dan hard drive rotasi (dibandingkan dengan hard drive solid-state).

Pembuatan bytecode

Sebagai pengoptimalan performa untuk mempercepat waktu eksekusi JavaScript, file JavaScript yang berakhiran ekstensi .js menghasilkan bytecode saat aplikasi disebarkan. Ini secara signifikan meningkatkan waktu startup dan eksekusi yang sedang berlangsung untuk operasi JavaScript.

Detail pengujian

Memeriksa penyebaran aplikasi untuk memverifikasi bahwa semua file .js telah dikonversi ke bytecode.

Tindakan Korektif

Jika pengujian ini gagal, pertimbangkan hal berikut saat mengatasi masalah:

  • Verifikasi bahwa pengelogan peristiwa diaktifkan.
  • Verifikasi bahwa semua file JavaScript valid secara sintis.
  • Konfirmasikan bahwa semua versi aplikasi sebelumnya dihapus instalasinya.
  • Kecualikan file yang diidentifikasi dari paket aplikasi.

Referensi pengikatan yang dioptimalkan

Saat menggunakan pengikatan, WinJS.Binding.optimizeBindingReferences harus diatur ke true untuk mengoptimalkan penggunaan memori.

Detail pengujian

Verifikasi nilai WinJS.Binding.optimizeBindingReferences.

Tindakan Korektif

Atur WinJS.Binding.optimizeBindingReferences ke true di aplikasi JavaScript.

Pengujian sumber daya manifes aplikasi

Validasi sumber daya aplikasi

Aplikasi mungkin tidak diinstal jika string atau gambar yang dideklarasikan dalam manifes aplikasi Anda salah. Jika aplikasi menginstal dengan kesalahan ini, logo aplikasi Anda atau gambar lain yang digunakan oleh aplikasi Anda mungkin tidak ditampilkan dengan benar.

Detail pengujian

Memeriksa sumber daya yang ditentukan dalam manifes aplikasi untuk memastikan sumber daya tersebut ada dan valid.

Tindakan Korektif

Gunakan tabel berikut sebagai panduan.

Pesan kesalahanKomentar

Gambar {image name} mendefinisikan kualifikasi Skala dan TargetSize; Anda hanya dapat menentukan satu kualifikasi pada satu waktu.

Anda dapat menyesuaikan gambar untuk resolusi yang berbeda.

Dalam pesan aktual, {image name} berisi nama gambar dengan kesalahan.

Pastikan bahwa setiap gambar mendefinisikan Skala atau TargetSize sebagai kualifikasi.

Gambar {nama gambar} gagal dalam batasan ukuran.

Pastikan bahwa semua gambar aplikasi mematuhi batasan ukuran yang tepat.

Dalam pesan aktual, {image name} berisi nama gambar dengan kesalahan.

Gambar {nama gambar} hilang dari paket.

Gambar yang diperlukan hilang.

Dalam pesan aktual, {image name} berisi nama gambar yang hilang.

Gambar {nama gambar} bukan file gambar yang valid.

Pastikan bahwa semua gambar aplikasi mematuhi batasan jenis format file yang tepat.

Dalam pesan aktual, {image name} berisi nama gambar yang tidak valid.

Gambar "BadgeLogo" memiliki nilai ABGR {value} pada posisi (x, y) yang tidak valid. Piksel harus berwarna putih (##FFFFFF) atau transparan (00######)

Logo lencana adalah gambar yang muncul di samping pemberitahuan lencana untuk mengidentifikasi aplikasi di layar kunci. Gambar ini harus monokromatik (hanya dapat berisi piksel putih dan transparan).

Dalam pesan aktual, {value} berisi nilai warna dalam gambar yang tidak valid.

Gambar "BadgeLogo" memiliki nilai ABGR {value} pada posisi (x, y) yang tidak valid untuk gambar putih kontras tinggi. Piksel harus (##2A2A2A) atau lebih gelap, atau transparan (00######).

Logo lencana adalah gambar yang muncul di samping pemberitahuan lencana untuk mengidentifikasi aplikasi di layar kunci. Karena logo lencana muncul di latar belakang putih ketika berwarna putih kontras tinggi, logo tersebut harus berupa versi gelap dari logo lencana normal. Dalam warna putih kontras tinggi, logo lencana hanya dapat berisi piksel yang lebih gelap dari (##2A2A2A) atau transparan.

Dalam pesan aktual, {value} berisi nilai warna dalam gambar yang tidak valid.

Gambar harus menentukan setidaknya satu varian tanpa kualifikasi TargetSize. Ini harus menentukan kualifikasi Skala atau membiarkan Skala dan TargetSize tidak ditentukan, yang default ke Scale-100.

Untuk informasi selengkapnya, lihat Desain responsif 101 untuk aplikasi UWP dan Panduan untuk sumber daya aplikasi.

Paket kehilangan file "resources.pri".

Jika Anda memiliki konten yang dapat dilokalkan dalam manifes aplikasi, pastikan paket aplikasi Anda menyertakan file resources.pri yang valid.

File "resources.pri" harus berisi peta sumber daya dengan nama yang cocok dengan nama paket {package full name}

Anda bisa mendapatkan kesalahan ini jika manifes berubah dan nama peta sumber daya di resources.pri tidak lagi cocok dengan nama paket dalam manifes.

Dalam pesan aktual, {package full name} berisi nama paket yang harus dimuat resources.pri.

Untuk memperbaikinya, Anda perlu membangun kembali resources.pri dan cara term mudah untuk melakukannya adalah dengan membangun kembali paket aplikasi.

File "resources.pri" tidak boleh mengaktifkan AutoMerge.

MakePRI.exe mendukung opsi yang disebut AutoMerge. Nilai default AutoMerge nonaktif. Saat diaktifkan, AutoMerge menggabungkan sumber daya paket bahasa aplikasi ke dalam satu resources.pri pada runtime. Kami tidak merekomendasikan ini untuk aplikasi yang ingin Anda distribusikan melalui Microsoft Store. Resources.pri dari aplikasi yang didistribusikan melalui Microsoft Store harus berada di akar paket aplikasi dan berisi semua referensi bahasa yang didukung aplikasi.

String {string} gagal pembatasan panjang maksimum {number} karakter.

Lihat Persyaratan paket Aplikasi.

Dalam pesan aktual, {string} digantikan oleh string dengan kesalahan dan {number} berisi panjang maksimum.

String {string} tidak boleh memiliki spasi kosong di awal/akhir.

Skema untuk elemen dalam manifes aplikasi tidak mengizinkan karakter spasi kosong di depan atau di belakangnya.

Dalam pesan aktual, {string} digantikan oleh string dengan kesalahan.

Pastikan bahwa tidak ada nilai yang dilokalkan dari bidang manifes di resources.pri yang memiliki karakter spasi kosong di depan atau di belakang.

String harus tidak kosong (panjangnya lebih besar dari nol)

Untuk informasi selengkapnya, lihat Persyaratan paket aplikasi.

Tidak ada sumber daya default yang ditentukan dalam file "resources.pri".

Untuk informasi selengkapnya, lihat Panduan untuk sumber daya aplikasi.

Dalam konfigurasi build default, Visual Studio hanya menyertakan sumber daya gambar skala-200 dalam paket aplikasi saat membuat bundel, menempatkan sumber daya lain dalam paket sumber daya. Pastikan Anda menyertakan sumber daya gambar skala-200 atau mengonfigurasi proyek Anda untuk menyertakan sumber daya yang Anda miliki.

Tidak ada nilai sumber daya yang ditentukan dalam file "resources.pri".

Pastikan bahwa manifes aplikasi memiliki sumber daya valid yang ditentukan dalam resources.pri.

File gambar {filename} harus lebih kecil dari 204800 byte.\*\*

Kurangi ukuran gambar yang ditunjukkan.

File {filename} tidak boleh berisi bagian peta terbalik.\*\*

Meskipun peta terbalik dihasilkan selama visual Studio 'penelusuran kesalahan F5' saat memanggil ke makepri.exe, peta tersebut dapat dihapus dengan menjalankan makepri.exe tanpa parameter /m saat menghasilkan file pri.

\*\* Menunjukkan bahwa pengujian ditambahkan di Windows App Certification Kit 3.3 untuk Windows 8.1 dan hanya berlaku saat menggunakan versi kit tersebut atau yang lebih baru.

 

Validasi branding

Aplikasi UWP diharapkan selesai dan berfungsi penuh. Aplikasi yang menggunakan gambar default (dari templat atau sampel SDK) menghadirkan pengalaman pengguna yang buruk dan tidak dapat dengan mudah diidentifikasi dalam katalog toko.

Detail pengujian

Pengujian akan memvalidasi apakah gambar yang digunakan oleh aplikasi bukan gambar default baik dari sampel SDK atau dari Visual Studio.

Tindakan korektif

Ganti gambar default dengan sesuatu yang lebih berbeda dan representatif dari aplikasi Anda.

Uji konfigurasi debug

Uji aplikasi untuk memastikan aplikasi tersebut bukan build debug.

Latar belakang

Untuk disertifikasi untuk Microsoft Store, aplikasi tidak boleh dikompilasi untuk debug dan tidak boleh mereferensikan versi debug file yang dapat dieksekusi. Selain itu, Anda harus membuat kode sebagai dioptimalkan agar aplikasi Anda lulus pengujian ini.

Detail pengujian

Uji aplikasi untuk memastikan aplikasi tersebut bukan build debug dan tidak ditautkan ke kerangka kerja debug apa pun.

Tindakan korektif

  • Buat aplikasi sebagai build rilis sebelum Anda mengirimkannya ke Microsoft Store.
  • Pastikan Anda telah menginstal versi .NET framework yang benar.
  • Pastikan aplikasi tidak menautkan ke versi debug kerangka kerja dan sedang membangun dengan versi rilis. Jika aplikasi ini berisi komponen .NET, pastikan Anda telah menginstal versi .NET framework yang benar.

Uji pengodean file

Pengodean file UTF-8

Latar belakang

File HTML, CSS, dan JavaScript harus dikodekan dalam formulir UTF-8 dengan tanda urutan byte (BOM) yang sesuai untuk mendapatkan manfaat dari penembolokan bytecode dan menghindari kondisi kesalahan runtime tertentu.

Detail pengujian

Uji konten paket aplikasi untuk memastikan bahwa mereka menggunakan pengodean file yang benar.

Tindakan Korektif

Buka file yang terpengaruh dan pilih Simpan Sebagai dari menu File di Visual Studio. Pilih kontrol drop-down di samping tombol Simpan dan pilih Simpan dengan Pengodean. Dari dialog Opsi penyimpanan tingkat lanjut, pilih opsi Unicode (UTF-8 dengan tanda tangan) dan klik OK.

Pengujian tingkat fitur Direct3D

Dukungan tingkat fitur Direct3D

Menguji aplikasi Microsoft Direct3D untuk memastikan bahwa aplikasi tersebut tidak akan mengalami crash pada perangkat dengan perangkat keras grafis yang lebih lama.

Latar belakang

Microsoft Store mengharuskan semua aplikasi yang menggunakan Direct3D untuk dirender dengan benar atau gagal dengan baik pada kartu grafis tingkat fitur 9-1.

Karena pengguna dapat mengubah perangkat keras grafis di perangkat mereka setelah aplikasi diinstal, jika Anda memilih tingkat fitur minimum yang lebih tinggi dari 9-1, aplikasi Anda harus mendeteksi saat peluncuran apakah perangkat keras saat ini memenuhi persyaratan minimum atau tidak. Jika persyaratan minimum tidak terpenuhi, aplikasi harus menampilkan pesan kepada pengguna yang merinci persyaratan Direct3D. Selain itu, jika aplikasi diunduh di perangkat yang tidak kompatibel, aplikasi harus mendeteksinya saat diluncurkan dan menampilkan pesan kepada pelanggan yang merinci persyaratan.

Detail pengujian

Pengujian akan memvalidasi apakah aplikasi dirender secara akurat pada tingkat fitur 9-1.

Tindakan Korektif

Pastikan aplikasi Anda dirender dengan benar pada tingkat fitur Direct3D 9-1, bahkan jika Anda mengharapkannya berjalan pada tingkat fitur yang lebih tinggi. Lihat Mengembangkan untuk tingkat fitur Direct3D yang berbeda untuk informasi selengkapnya.

Direct3D Trim setelah ditangguhkan

Catatan Pengujian ini hanya berlaku untuk aplikasi UWP yang dikembangkan untuk Windows 8.1 dan yang lebih baru.

Latar belakang

Jika aplikasi tidak memanggil Pangkas pada perangkat Direct3D-nya, aplikasi tidak akan merilis memori yang dialokasikan untuk pekerjaan 3D sebelumnya. Ini meningkatkan risiko aplikasi dihentikan karena tekanan memori sistem.

Detail pengujian

Memeriksa aplikasi untuk kepatuhan terhadap persyaratan d3d dan memastikan bahwa aplikasi memanggil API Pangkas baru setelah panggilan balik Tangguhkan.

Tindakan Korektif

Aplikasi harus memanggil API Trim pada antarmuka IDXGIDevice3-nya kapan saja akan ditangguhkan.

Pengujian Kemampuan Aplikasi

Kemampuan penggunaan khusus

Latar belakang

Kemampuan penggunaan khusus ditujukan untuk skenario yang sangat spesifik. Hanya akun perusahaan yang diizinkan untuk menggunakan kemampuan ini.

Detail pengujian

Validasi apakah aplikasi mendeklarasikan salah satu kemampuan di bawah ini:

  • EnterpriseAuthentication
  • SharedUserCertificates
  • DocumentsLibrary

Jika salah satu kemampuan ini dideklarasikan, pengujian akan menampilkan peringatan kepada pengguna.

Tindakan Korektif

Pertimbangkan untuk menghapus kemampuan penggunaan khusus jika aplikasi Anda tidak memerlukannya. Selain itu, penggunaan kemampuan ini tunduk pada tinjauan kebijakan on-boarding tambahan.

Validasi metadata Windows Runtime

Latar belakang

Memastikan bahwa komponen yang dikirim dalam aplikasi sesuai dengan sistem jenis Windows Runtime.

Detail pengujian

Memverifikasi bahwa file .winmd dalam paket sesuai dengan aturan Windows Runtime.

Tindakan Korektif

  • Uji atribut ExclusiveTo: Pastikan bahwa kelas Windows Runtime tidak menerapkan antarmuka yang ditandai sebagai ExclusiveTo kelas lain.
  • Uji lokasi jenis: Pastikan metadata untuk semua jenis Windows Runtime terletak di file winmd yang memiliki nama pencocokan namespace terpanjang dalam paket aplikasi.
  • Uji sensitivitas huruf besar/kecil nama jenis: Pastikan bahwa semua jenis Windows Runtime memiliki nama unik yang tidak peka huruf besar/kecil dalam paket aplikasi Anda. Pastikan juga bahwa tidak ada nama jenis UWP yang juga digunakan sebagai nama namespace dalam paket aplikasi Anda.
  • Uji kebenaran nama jenis: Pastikan tidak ada jenis Windows Runtime di namespace layanan global atau di namespace layanan tingkat atas Windows.
  • Uji kebenaran metadata umum: Pastikan pengkompilasi yang Anda gunakan untuk menghasilkan jenis Anda sudah diperbarui dengan spesifikasi Windows Runtime.
  • Pengujian properti: pastikan bahwa semua properti pada kelas Windows Runtime memiliki metode get (metode set bersifat opsional). Pastikan bahwa jenis nilai pengembalian metode get cocok dengan jenis parameter input metode yang ditetapkan, untuk semua properti pada jenis Windows Runtime.

Uji Kewarasan Paket

Uji file yang sesuai platform

Aplikasi yang menginstal biner campuran dapat mengalami crash atau tidak berjalan dengan benar tergantung pada arsitektur prosesor pengguna.

Latar belakang

Pengujian ini memvalidasi biner dalam paket aplikasi untuk konflik arsitektur. Paket aplikasi tidak boleh menyertakan biner yang tidak dapat digunakan pada arsitektur prosesor yang ditentukan dalam manifes. Termasuk biner yang tidak didukung dapat menyebabkan aplikasi Anda mengalami crash atau peningkatan ukuran paket aplikasi yang tidak perlu.

Detail pengujian

Memvalidasi bahwa setiap "bitness" file di header PE sesuai saat direferensikan silang dengan deklarasi arsitektur prosesor paket aplikasi

Tindakan Korektif

Ikuti panduan ini untuk memastikan bahwa paket aplikasi Anda hanya berisi file yang didukung oleh arsitektur yang ditentukan dalam manifes aplikasi:

  • Jika Arsitektur Prosesor Target untuk aplikasi Anda adalah Jenis prosesor Netral, paket aplikasi tidak boleh berisi file biner x86, x64, atau Arm atau jenis gambar.

  • Jika Arsitektur Prosesor Target untuk aplikasi Anda adalah jenis prosesor x86, paket aplikasi hanya boleh berisi file biner atau jenis gambar x86. Jika paket berisi biner x64 atau Arm atau jenis gambar, paket akan gagal pengujian.

  • Jika Arsitektur Prosesor Target untuk aplikasi Anda adalah jenis prosesor x64, paket aplikasi harus berisi file biner atau jenis gambar x64. Perhatikan bahwa dalam hal ini paket juga dapat menyertakan file x86, tetapi pengalaman aplikasi utama harus menggunakan biner x64.

    Namun, jika paket berisi file biner Arm atau jenis gambar, atau hanya berisi biner x86 atau file jenis gambar, itu akan gagal pengujian.

  • Jika Arsitektur Prosesor Target untuk aplikasi Anda adalah jenis prosesor Arm, paket aplikasi hanya boleh berisi file biner Arm atau jenis gambar. Jika paket berisi file biner atau jenis gambar x64 atau x86, paket akan gagal pengujian.

Uji Struktur Direktori yang Didukung

Memvalidasi bahwa aplikasi tidak membuat subdirektori sebagai bagian dari penginstalan yang lebih panjang dari MAX-PATH.

Latar belakang

Komponen OS (termasuk Trident, WWAHost, dll.) secara internal terbatas pada MAX-PATH untuk jalur sistem file dan tidak akan berfungsi dengan benar untuk jalur yang lebih panjang.

Detail pengujian

Memverifikasi bahwa tidak ada jalur dalam direktori penginstalan aplikasi yang melebihi MAX-PATH.

Tindakan Korektif

Gunakan struktur direktori yang lebih pendek, dan atau nama file.

Pengujian Penggunaan Sumber Daya

Uji Tugas Latar Belakang WinJS

Pengujian tugas latar belakang WinJS memastikan bahwa aplikasi JavaScript memiliki pernyataan tutup yang tepat sehingga aplikasi tidak menggunakan baterai.

Latar belakang

Aplikasi yang memiliki tugas latar belakang JavaScript perlu memanggil Close() sebagai pernyataan terakhir dalam tugas latar belakang mereka. Aplikasi yang tidak melakukan ini dapat mencegah sistem kembali ke mode siaga yang terhubung dan mengakibatkan pengurasan baterai.

Detail pengujian

Jika aplikasi tidak memiliki file tugas latar belakang yang ditentukan dalam manifes, pengujian akan lulus. Jika tidak, pengujian akan mengurai file tugas latar belakang JavaScript yang ditentukan dalam paket aplikasi, dan mencari pernyataan Close(). Jika ditemukan, tes akan lulus; jika tidak, pengujian akan gagal.

Tindakan Korektif

Perbarui kode JavaScript latar belakang untuk memanggil Close() dengan benar.