Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia demonstra como usar a CLI do winapp com um aplicativo Tauri para depurar com a identidade do pacote e empacotar seu aplicativo como um MSIX.
A identidade do pacote é um conceito básico no modelo de Windows app. Ele permite que seu aplicativo acesse APIs específicas do Windows (como Notificações, Segurança, APIs de IA etc.), e tenha uma experiência de instalação/desinstalação limpa, entre outras funcionalidades.
Pré-requisitos
- Windows 11
-
Node.js -
winget install OpenJS.NodeJS --source winget -
winapp CLI -
winget install microsoft.winappcli --source winget
1. Criar um novo aplicativo Tauri
npm create tauri-app@latest
Siga os prompts (Nome do projeto: tauri-app, idioma front-end: JavaScript, Gerenciador de pacotes: npm).
Navegue até o diretório do projeto e instale dependências.
cd tauri-app
npm install
Execute o aplicativo:
npm run tauri dev
2. Atualizar código para verificar a identidade
Alterações de backend (Rust)
Adicione a windows dependência. Abrir src-tauri/Cargo.toml:
[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }
Abra src-tauri/src/lib.rs e adicione o comando:
#[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()
}
}
Registre o comando na função run:
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");
}
Alterações de front-end (JavaScript)
In src/index.html, adicione um parágrafo para exibir o resultado:
<p id="pfn-msg"></p>
In src/main.js, invoque o comando:
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();
});
Execute o aplicativo para confirmar que ele mostra "Não está em execução com a identidade do pacote":
npm run tauri dev
3. Inicie o projeto com CLI do winapp
winapp init
Quando solicitado:
- Nome do pacote: Pressione Enter para aceitar o padrão (tauri-app)
- Nome do publicador: pressione Enter para aceitar o valor padrão ou insira seu nome
- Versão: Pressione Enter para aceitar 1.0.0.0
- Ponto de entrada: pressione Enter para aceitar o padrão (tauri-app.exe)
- Configurar SDKs: selecione "Não configurar SDKs"
4. Depurar com identidade
Adicionar um script a package.json:
"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"
}
Execute-o:
npm run tauri:dev:withidentity
Você deve ver o aplicativo exibir um Nome da Família do Pacote.
5. Empacotar com MSIX
Compilar para lançamento:
npm run tauri buildPreparar o diretório do pacote:
mkdir dist copy .\src-tauri\target\release\tauri-app.exe .\dist\Gerar um certificado de desenvolvimento:
winapp cert generate --if-exists skipEmpacotar e assinar:
winapp pack .\dist --cert .\devcert.pfxInstalar o certificado (executar como administrador):
winapp cert install .\devcert.pfxInstale clicando duas vezes no arquivo gerado
.msix. Inicie pelo menu Iniciar.
Tópicos relacionados
Windows developer