Tauri ile winapp CLI kullanma

Bu kılavuz, paket kimliğiyle hata ayıklamak ve uygulamanızı MSIX olarak paketlemek için winapp CLI'yi bir Tauri uygulamasıyla nasıl kullanacağınızı gösterir.

Paket kimliği, Windows app modelinde temel bir kavramdır. Uygulamanızın belirli Windows API'lerine (Bildirimler, Güvenlik, Yapay Zeka API'leri vb.) erişmesini sağlar, sorunsuz yükleme ve kaldırma deneyimi sunar ve daha fazlasını gerçekleştirir.

Önkoşullar

  1. Windows 11
  2. Node.js - winget install OpenJS.NodeJS --source winget
  3. winapp CLI - winget install microsoft.winappcli --source winget

1. Yeni bir Tauri uygulaması oluşturma

npm create tauri-app@latest

İstemleri izleyin (Project adı: tauri-app, Ön uç dili: JavaScript, Package manager: npm).

project dizininize gidin ve bağımlılıkları yükleyin:

cd tauri-app
npm install

Uygulamayı çalıştırın:

npm run tauri dev

2. Kimliği denetlemek için kodu güncelleştirme

Arka uç değişiklikleri (Rust)

windows Bağımlılığı ekleyin. dosyasını açın src-tauri/Cargo.toml:

[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }

komutunu açın src-tauri/src/lib.rs ve ekleyin:

#[tauri::command]
fn get_package_family_name() -> String {
    #[cfg(target_os = "windows")]
    {
        use windows::ApplicationModel::Package;
        match Package::Current() {
            Ok(package) => {
                match package.Id() {
                    Ok(id) => match id.FamilyName() {
                        Ok(name) => name.to_string(),
                        Err(_) => "Error retrieving Family Name".to_string(),
                    },
                    Err(_) => "Error retrieving Package ID".to_string(),
                }
            }
            Err(_) => "No package identity".to_string(),
        }
    }
    #[cfg(not(target_os = "windows"))]
    {
        "Not running on Windows".to_string()
    }
}

Komutu run işlevine kaydedin.

pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_opener::init())
        .invoke_handler(tauri::generate_handler![greet, get_package_family_name])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Ön uç değişiklikleri (JavaScript)

içinde src/index.html, sonucu görüntülemek için bir paragraf ekleyin:

<p id="pfn-msg"></p>

içinde src/main.jskomutunu çağırın:

const { invoke } = window.__TAURI__.core;

async function checkPackageIdentity() {
  const pfn = await invoke("get_package_family_name");
  const pfnMsgEl = document.querySelector("#pfn-msg");

  if (pfn !== "No package identity" && !pfn.startsWith("Error")) {
    pfnMsgEl.textContent = `Package family name: ${pfn}`;
  } else {
    pfnMsgEl.textContent = `Not running with package identity`;
  }
}

window.addEventListener("DOMContentLoaded", () => {
  checkPackageIdentity();
});

"Paket kimliğiyle çalışmıyor" ifadesinin gösterildiğini onaylamak için uygulamayı çalıştırın:

npm run tauri dev

3. winapp CLI ile project başlatın

winapp init

Sorulduğunda:

  • Paket adı: Varsayılanı kabul etmek için Enter tuşuna basın (tauri-app)
  • Publisher name: Varsayılanı kabul etmek için Enter tuşuna basın veya adınızı girin
  • Sürüm: 1.0.0.0'ı kabul etmek için Enter'a basın
  • Giriş noktası: Varsayılanı kabul etmek için Enter tuşuna basın (tauri-app.exe)
  • SDK'ları ayarlama: "SDK'ları ayarlama" seçeneğini belirlemeyin

4. Kimlikle hata ayıklama

dosyasına package.jsonbir betik ekleyin:

"scripts": {
    "tauri:dev:withidentity": "cargo build --manifest-path src-tauri/Cargo.toml && winapp create-debug-identity src-tauri/target/debug/tauri-app.exe && .\\src-tauri\\target\\debug\\tauri-app.exe"
}

Çalıştırın:

npm run tauri:dev:withidentity

Uygulamanın bir Paket Aile Adı görüntülediğini görmeniz gerekir.

5. MSIX ile paketle

  1. Yayın için derleme:

    npm run tauri build
    
  2. Paket dizinini hazırlama:

    mkdir dist
    copy .\src-tauri\target\release\tauri-app.exe .\dist\
    
  3. Geliştirme sertifikası oluşturma:

    winapp cert generate --if-exists skip
    
  4. Paketle ve imzala:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Sertifikayı yükleyin (yönetici olarak çalıştırın):

    winapp cert install .\devcert.pfx
    
  6. Oluşturulan dosyaya çift tıklayarak .msix. Başlat menüsünden başlatın.