Bagikan melalui


Pengujian aplikasi Windows Desktop Bridge

Aplikasi Desktop Bridge (lihat Membangun paket MSIX dari kode Anda) adalah aplikasi desktop Windows yang dikonversi ke aplikasi Platform Windows Universal (UWP) dengan menggunakan Desktop Bridge. Setelah konversi, aplikasi desktop Windows dikemas, dilayankan, dan disebarkan dalam bentuk paket aplikasi UWP (.appx atau .appxbundle) yang menargetkan Windows 10 Desktop.

Pengujian opsional versus yang diperlukan

Pengujian opsional untuk aplikasi Windows Desktop Bridge hanya bersifat informasional dan tidak akan digunakan untuk mengevaluasi aplikasi Anda selama onboarding Microsoft Store. Sebaiknya selidiki hasil pengujian ini untuk menghasilkan aplikasi berkualitas lebih baik. Kriteria pass/fail keseluruhan untuk onboarding toko ditentukan oleh pengujian yang diperlukan dan bukan oleh pengujian opsional ini.

Pengujian opsional saat ini

1. Tes file yang ditandatangani secara digital

Latar belakang
Pengujian ini memverifikasi bahwa semua file portabel yang dapat dieksekusi (PE) berisi tanda tangan yang valid. Kehadiran file yang ditandatangani secara digital memungkinkan pengguna untuk mengetahui bahwa perangkat lunak tersebut asli.

Detail pengujian
Pengujian memindai semua file portabel yang dapat dieksekusi dalam paket dan memeriksa header mereka untuk tanda tangan. Semua file PE disarankan untuk ditandatangani secara digital. Peringatan akan dihasilkan jika salah satu file PE tidak ditandatangani.

Tindakan korektif
Memiliki file yang ditandatangani secara digital selalu disarankan. Untuk informasi selengkapnya, lihat Pengantar Penandatanganan Kode.

2. Kata kerja asosiasi file

Latar belakang
Pengujian ini memindai registri paket untuk memeriksa apakah ada kata kerja asosiasi file yang terdaftar.

Detail pengujian
Aplikasi desktop yang dikonversi dapat ditingkatkan dengan berbagai API Windows Runtime. Pengujian ini memeriksa bahwa biner UWP di aplikasi tidak memanggil API Runtime non-Windows. Biner UWP memiliki set bendera AppContainer .

Tindakan korektif
Lihat Desktop ke Jembatan UWP: Ekstensi aplikasi untuk penjelasan tentang ekstensi ini dan cara menggunakannya dengan benar.

3. Uji konfigurasi debug

Pengujian ini memverifikasi bahwa .msix atau .appx 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.

4. Uji kewarasan paket

4.1 Mengarsipkan penggunaan file

Latar belakang
Pengujian ini membantu Anda membangun Aplikasi Jembatan Desktop yang lebih baik untuk dijalankan pada komputer Windows 10 S .

Detail pengujian
Pengujian ini memeriksa semua file yang dapat dieksekusi di dalam file yang diarsipkan atau mengekstrak konten sendiri. Karena file yang dapat dieksekusi yang terkandung dalam jenis konten ini tidak ditandatangani selama onboarding ke penyimpanan Windows, aplikasi mungkin tidak berjalan seperti yang diharapkan pada sistem Windows 10 S.

Tindakan korektif

  • Pertimbangkan untuk mengevaluasi file yang ditandai oleh pengujian untuk menentukan apakah ada dampak pada aplikasi Anda yang berjalan di lingkungan Windows 10 S.
  • Jika aplikasi Anda akan terpengaruh, hapus file yang dapat dieksekusi dari file yang diarsipkan dan jangan gunakan arsip ekstraksi mandiri untuk menempatkan file yang dapat dieksekusi pada disk. Ini harus mencegah hilangnya fungsionalitas aplikasi.

4.2 Executable yang diblokir

Latar belakang
Pengujian ini membantu Anda membangun Aplikasi Jembatan Desktop yang lebih baik untuk dijalankan pada komputer Windows 10 S .

Detail pengujian
Pengujian ini memeriksa apakah aplikasi mencoba meluncurkan file yang dapat dieksekusi, yang dibatasi pada sistem Windows 10 S. Aplikasi yang mengandalkan kemampuan ini mungkin tidak berjalan seperti yang diharapkan pada sistem Windows 10 S.

Tindakan korektif

  • Identifikasi entri mana yang ditandai dari pengujian yang mewakili panggilan untuk meluncurkan file yang dapat dieksekusi yang bukan bagian dari aplikasi Anda, dan hapus panggilan tersebut.
  • Jika file yang ditandai adalah bagian dari aplikasi Anda, Anda dapat mengabaikan peringatan.

Pengujian yang diperlukan saat ini

1. Uji 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 orientasi tambahan.

2. Pengujian sumber daya manifes aplikasi

2.1 Validasi sumber daya aplikasi

Aplikasi Anda mungkin tidak diinstal dengan benar jika string atau gambar yang dideklarasikan dalam manifes aplikasi salah. Jika aplikasi menginstal dengan kesalahan ini, logo aplikasi Anda atau gambar lain 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 kesalahan Komentar
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 panduan tentang desain responsif dan 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 tentang 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.

2.2 Validasi branding

Latar belakang
Desktop Bridge Apps 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.

3. Uji kepatuhan paket

3.1 Manifes Aplikasi

Menguji 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. Pemeriksaan berikut dilakukan dalam pengujian ini:

  • Ekstensi dan protokol file
    Aplikasi Anda dapat mendeklarasikan jenis file yang dapat dikaitkan dengannya. Deklarasi sejumlah besar jenis file yang jarang membuat pengalaman pengguna yang lebih buruk. Pengujian ini membatasi jumlah ekstensi file yang dapat dikaitkan dengan aplikasi.
  • Aturan dependensi kerangka kerja
    Pengujian ini memberlakukan persyaratan bahwa aplikasi mendeklarasikan dependensi yang sesuai pada UWP. Jika ada dependensi yang tidak pantas, pengujian ini akan gagal. Jika ada ketidakcocokan antara versi OS yang ditargetkan aplikasi dan dependensi kerangka kerja yang dibuat, pengujian akan gagal. Pengujian juga gagal jika aplikasi mengacu pada versi "pratinjau" dari dll kerangka kerja.
  • Verifikasi komunikasi antar proses (IPC)
    Pengujian ini memberlakukan persyaratan bahwa aplikasi Desktop Bridge 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 DesktopApplicationPath dengan akan gagal dalam pengujian ini.

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

3.2 Jumlah Aplikasi

Pengujian ini memverifikasi bahwa paket aplikasi (.appx, app bundle) berisi satu aplikasi.

Latar belakang
Pengujian ini diimplementasikan sesuai kebijakan Store.

Detail pengujian
Pengujian ini memverifikasi bahwa jumlah total paket .appx dalam bundel kurang dari 512, dan hanya ada satu paket "utama" dalam bundel. Ini juga memverifikasi bahwa nomor revisi versi bundel diatur ke 0.

Tindakan korektif
Pastikan paket aplikasi dan bundel memenuhi persyaratan yang dinyatakan dalam Detail pengujian.

3.3 Pemeriksaan Registri

Latar belakang
Pengujian ini memeriksa apakah aplikasi menginstal atau memperbarui layanan atau driver baru apa pun.

Detail pengujian
Pengujian ini melihat ke dalam file registry.dat untuk pembaruan lokasi registri tertentu yang menunjukkan layanan atau driver baru yang didaftarkan. Jika aplikasi mencoba menginstal driver atau layanan, pengujian akan gagal.

Tindakan korektif
Tinjau kegagalan dan hapus layanan atau driver yang dimaksud jika tidak perlu. Jika aplikasi tergantung pada ini, Anda harus merevisi aplikasi jika Anda ingin onboarding ke Store.

4. 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 memindai 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 portabel yang dapat dieksekusi 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. 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.

5. Pengujian API yang didukung

Memeriksa aplikasi untuk penggunaan API yang tidak patuh.

Latar belakang
Aplikasi Desktop Bridge dapat memanfaatkan beberapa API Win32 warisan bersama dengan API modern (komponen UWP). Pengujian ini mengidentifikasi biner terkelola yang menggunakan API yang tidak didukung.

Detail pengujian
Pengujian ini memeriksa semua komponen UWP di aplikasi:

  • Memverifikasi bahwa setiap biner terkelola 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
Ini dapat dikoreksi dengan memastikan bahwa aplikasi dikompilasi sebagai build rilis dan bukan sebagai build debug.

Catatan

Build debug aplikasi akan gagal dalam pengujian ini meskipun aplikasi hanya menggunakan API untuk aplikasi UWP. Tinjau pesan kesalahan untuk mengidentifikasi API yang ada yang bukan API yang diizinkan untuk aplikasi UWP.

Catatan

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 WINDOWS API di aplikasi UWP untuk informasi selengkapnya.

6. Uji kontrol akun pengguna (UAC)

Latar belakang
Memastikan bahwa aplikasi tidak meminta kontrol akun pengguna saat runtime.

Detail pengujian
Aplikasi tidak dapat meminta elevasi admin atau UIAccess per kebijakan Microsoft Store. Izin keamanan yang ditingkatkan tidak didukung.

Tindakan korektif
Aplikasi harus berjalan sebagai pengguna interaktif. Lihat Gambaran Umum Keamanan Automasi UI untuk detailnya.

7. Validasi metadata Windows Runtime

Latar belakang
Memastikan bahwa komponen yang dikirim dalam aplikasi sesuai dengan sistem jenis UWP.

Detail pengujian
Pengujian ini melempar sejumlah bendera yang terkait dengan penggunaan jenis yang tepat.

Tindakan korektif

  • Atribut ExclusiveTo
    Pastikan bahwa kelas UWP tidak menerapkan antarmuka yang ditandai sebagai ExclusiveTo kelas lain
  • Kebenaran Metadata Umum
    Pastikan pengkompilasi yang Anda gunakan untuk menghasilkan jenis Anda sudah diperbarui dengan spesifikasi UWP.
  • Properti
    Pastikan bahwa semua properti di kelas UWP memiliki get metode (set metode bersifat opsional). Untuk semua properti, pastikan bahwa jenis yang dikembalikan oleh metode cocok dengan get jenis set parameter input metode.
  • Lokasi jenis
    Pastikan bahwa metadata untuk semua jenis UWP terletak di file .winmd yang memiliki nama pencocokan namespace terpanjang dalam paket aplikasi.
  • Jenis nama sensitivitas huruf besar/kecil
    Pastikan bahwa semua jenis UWP 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.
  • Mengetikkan kebenaran nama
    Pastikan tidak ada jenis UWP di namespace layanan global atau di namespace tingkat atas Windows.

8. Pengujian fitur keamanan Windows

Mengubah perlindungan keamanan Windows default dapat membuat pelanggan berisiko meningkat.

8.1 Penganalisis File Terlarang

Latar belakang
File tertentu telah diperbarui dengan keamanan, keandalan, atau peningkatan penting lainnya. Aplikasi Windows Desktop Bridge harus berisi versi terbaru file-file ini, karena versi yang sudah kedaluarsa memberikan risiko. Kit Sertifikasi Aplikasi Windows memblokir file-file ini untuk memastikan bahwa semua aplikasi menggunakan versi saat ini.

Detail pengujian
Pemeriksaan File Terlarang di Kit Sertifikasi Aplikasi Windows saat ini memeriksa file berikut:

  • Bing.Maps.JavaScript\js\veapicore.js
    Pemeriksaan ini biasanya gagal saat aplikasi menggunakan versi "Pratinjau Rilis" file alih-alih rilis resmi terbaru.

Tindakan korektif
Untuk memperbaikinya, gunakan versi terbaru Bing Maps SDK untuk aplikasi UWP.

8.2 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
Memeriksa 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 (seperti file .pfx dan .snk) dari paket.