跳到主要內容
Tauri

從 Tauri 2.0 Beta 升級

本指南引導您將 Tauri 2.0 Beta 應用程式升級至 Tauri 2.0 候選發行版。

自動化遷移

Tauri v2 CLI 包含 migrate 命令,可自動化大部分流程並協助您完成遷移

npm install @tauri-apps/cli@latest
npm run tauri migrate

深入了解 migrate 命令,請參閱命令列介面參考

重大變更

從 Beta 版本到候選發行版,我們進行了一些重大變更。這些變更可以自動遷移(如上所述)或手動執行。

Tauri 核心外掛程式

我們變更了 Tauri 內建外掛程式在功能 PR #10390 中的尋址方式。

若要從最新的 Beta 版本遷移,您需要在功能中的所有核心權限識別符前面加上 core:,或切換到 core:default 權限並移除舊的核心外掛程式識別符。

...
"permissions": [
"path:default",
"event:default",
"window:default",
"app:default",
"image:default",
"resources:default",
"menu:default",
"tray:default",
]
...
...
"permissions": [
"core:path:default",
"core:event:default",
"core:window:default",
"core:app:default",
"core:image:default",
"core:resources:default",
"core:menu:default",
"core:tray:default",
]
...

我們也新增了一個特殊的 core:default 權限集,其中將包含所有核心外掛程式的所有預設權限,因此您可以簡化功能設定中的權限樣板程式碼。

...
"permissions": [
"core:default"
]
...

內建開發伺服器

我們對內建開發伺服器的網路暴露進行了變更 PR #10437PR #10456

內建行動裝置開發伺服器不再廣泛暴露於網路,而是將流量從本機直接隧道傳輸到裝置。

目前,此改進不會在 iOS 裝置上執行時自動套用(無論是直接執行還是從 Xcode 執行)。在這種情況下,我們預設使用開發伺服器的公用網路位址,但有一個解決方法,需要開啟 Xcode 以自動啟動 macOS 機器與連線的 iOS 裝置之間的連線,然後執行 tauri ios dev --force-ip-prompt 以選取 iOS 裝置的 TUN 位址(以 ::2 結尾)。

如果打算在實體 iOS 裝置上執行,您的開發伺服器設定需要適應此變更。先前我們建議檢查 TAURI_ENV_PLATFORM 環境變數是否符合 androidios,但由於現在除非使用 iOS 裝置,否則我們可以連線到 localhost,因此您應該改為檢查 TAURI_DEV_HOST 環境變數。以下是一個 Vite 設定遷移的範例

  • 2.0.0-beta
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
import { internalIpV4Sync } from 'internal-ip';
const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);
export default defineConfig({
plugins: [svelte()],
clearScreen: false,
server: {
host: mobile ? '0.0.0.0' : false,
port: 1420,
strictPort: true,
hmr: mobile
? {
protocol: 'ws',
host: internalIpV4Sync(),
port: 1421,
}
: undefined,
},
});
  • 2.0.0:
import { defineConfig } from 'vite';
import Unocss from 'unocss/vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
const host = process.env.TAURI_DEV_HOST;
export default defineConfig({
plugins: [svelte()],
clearScreen: false,
server: {
host: host || false,
port: 1420,
strictPort: true,
hmr: host
? {
protocol: 'ws',
host: host,
port: 1430,
}
: undefined,
},
});

© 2025 Tauri 貢獻者。CC-BY / MIT