Menggunakan winapp CLI dengan Rust

Panduan ini menunjukkan cara menggunakan winapp CLI dengan aplikasi Rust untuk men-debug dengan identitas paket dan mengemas aplikasi Anda sebagai MSIX.

Identitas paket adalah konsep inti dalam model Windows app. Ini memungkinkan aplikasi Anda untuk mengakses API Windows tertentu (seperti Pemberitahuan, Keamanan, API AI, dll.), merasakan pengalaman pemasangan/penghapusan instalasi yang lebih bersih, dan banyak lagi.

Prasyarat

  1. Rust Toolchain: Instal Rust menggunakan rustup atau winget:

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: Instal winapp alat melalui winget:

    winget install microsoft.winappcli --source winget
    

1. Buat aplikasi Rust baru

cargo new rust-app
cd rust-app

Jalankan untuk memastikan semuanya berfungsi:

cargo run

2. Perbarui kode untuk memeriksa identitas

Tambahkan dependensi windows ke Cargo.toml.

cargo add windows --features ApplicationModel

Ganti isi dari src/main.rs:

use windows::ApplicationModel::Package;

fn main() {
    match Package::Current() {
        Ok(package) => {
            match package.Id() {
                Ok(id) => match id.FamilyName() {
                    Ok(name) => println!("Package Family Name: {}", name),
                    Err(e) => println!("Error getting family name: {}", e),
                },
                Err(e) => println!("Error getting package ID: {}", e),
            }
        }
        Err(_) => println!("Not packaged"),
    }
}

3. Jalankan tanpa identitas

cargo run

Anda akan melihat "Tidak dibungkus".

4. Inisialisasi project dengan winapp CLI

winapp init

Ketika diminta:

  • Nama paket: Tekan Enter untuk menerima default (rust-app)
  • Nama penerbit: Tekan Enter untuk menerima pengaturan standar atau masukkan nama Anda
  • Versi: Tekan Enter untuk menerima 1.0.0.0
  • Titik masuk: Tekan Enter untuk menerima default (rust-app.exe)
  • Pengaturan SDK: Pilih "Jangan mengatur SDK"

Ini membuat appxmanifest.xml dan Assets folder untuk identitas aplikasi Anda.

5. Debug menggunakan identitas

  1. Buat executable:

    cargo build
    
  2. Terapkan identitas debug:

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. Jalankan executable (jangan gunakan cargo run karena mungkin dibangun kembali):

    .\target\debug\rust-app.exe
    

Anda harus melihat:

Package Family Name: rust-app_12345abcde

6. Paket dengan MSIX

  1. Bangun untuk rilis:

    cargo build --release
    
  2. Siapkan direktori paket:

    mkdir dist
    copy .\target\release\rust-app.exe .\dist\
    
  3. Buat sertifikat pengembangan:

    winapp cert generate --if-exists skip
    
  4. Paket dan tanda tangan:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Instal sertifikat (jalankan sebagai administrator):

    winapp cert install .\devcert.pfx
    
  6. Instal dan jalankan:

    Add-AppxPackage .\rust-app.msix
    rust-app
    

Tip

  • Tanda tangani MSIX Anda dengan sertifikat penandatanganan kode dari Otoritas Sertifikat untuk distribusi produksi.
  • Microsoft Store menandatangani MSIX untuk Anda, tidak perlu menandatangani sebelum pengiriman.
  • Anda mungkin memerlukan paket MSIX terpisah untuk setiap arsitektur yang Anda dukung (x64, Arm64).