From 49cabd117b238835d30b794cef9f69807d3c8e59 Mon Sep 17 00:00:00 2001 From: Yueer <36443462+YueerMoe@users.noreply.github.com> Date: Sun, 8 Feb 2026 04:26:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(metadata):=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20latest=20=E8=8E=B7=E5=8F=96=E5=85=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/app_cmd.rs | 7 ++----- src/pages/SettingsPage.vue | 4 ++-- src/stores/app.ts | 7 +++---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src-tauri/src/app_cmd.rs b/src-tauri/src/app_cmd.rs index 97e6aed..2d42c4a 100644 --- a/src-tauri/src/app_cmd.rs +++ b/src-tauri/src/app_cmd.rs @@ -85,20 +85,17 @@ pub async fn reset_metadata( #[tauri::command] pub async fn update_metadata( window: tauri::Window, - app: AppHandle, + _app: AppHandle, client: State<'_, reqwest::Client>, base_url: Option, ) -> Result { let exe_dir = exe_dir()?; - - // Use app version for metadata URL - let app_version = app.package_info().version.to_string(); metadata::update_metadata( &exe_dir, &client, base_url, - Some(app_version), + None, |progress| { let _ = window.emit("metadata-update-progress", progress); }, diff --git a/src/pages/SettingsPage.vue b/src/pages/SettingsPage.vue index 99b0237..baa26d1 100644 --- a/src/pages/SettingsPage.vue +++ b/src/pages/SettingsPage.vue @@ -95,7 +95,7 @@ const testSourceConnection = async (source: MetadataSourceType) => { connectivity.value[source] = { status: 'testing', latency: 0, error: '' } const start = performance.now() try { - const version = appStore.currentAppVersion || metadataVersion.value + const version = metadataVersion.value.trim() || 'latest' await fetchMetadataManifest({ baseUrl, version @@ -304,7 +304,7 @@ const verifyMetadataFiles = async () => { const resetMetadata = async () => { resetMetadataLoading.value = true try { - const version = appStore.currentAppVersion || metadataVersion.value + const version = metadataVersion.value.trim() || 'latest' await resetMetadataCommand({ baseUrl: metadataBaseUrl.value, version diff --git a/src/stores/app.ts b/src/stores/app.ts index 4914275..958aa73 100644 --- a/src/stores/app.ts +++ b/src/stores/app.ts @@ -91,8 +91,8 @@ export const useAppStore = defineStore('app', () => { if (sourceType === 'custom') { return normalizeBaseUrl(customBase ?? metadataCustomBase.value) } - // 优先使用 app version,latest 作为兜底 - const version = currentAppVersion.value || metadataVersion.value.trim() || DEFAULT_METADATA_VERSION + // 默认使用 latest,可通过 metadataVersion 覆盖 + const version = metadataVersion.value.trim() || DEFAULT_METADATA_VERSION if (sourceType === 'mirror') { return METADATA_MIRROR_TEMPLATE.replace('{version}', version) } @@ -236,7 +236,7 @@ export const useAppStore = defineStore('app', () => { if (metadataBaseUrl.value.trim()) { try { - const version = currentAppVersion.value || metadataVersion.value + const version = metadataVersion.value.trim() || DEFAULT_METADATA_VERSION const remote = await fetchMetadataManifest({ baseUrl: metadataBaseUrl.value, version }) merged = { ...status, remote } } catch (error) { @@ -326,4 +326,3 @@ export const useAppStore = defineStore('app', () => { } }) - From 683f33a242aba034de6c99043f7da7495ee17e71 Mon Sep 17 00:00:00 2001 From: Yueer <36443462+YueerMoe@users.noreply.github.com> Date: Sun, 8 Feb 2026 04:26:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ci(release):=20=E6=B7=BB=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=20ARM=20=E6=9E=84=E5=BB=BA=E7=9F=A9=E9=98=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 39 ++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 761210e..0559abc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,11 +61,23 @@ jobs: build: needs: prepare - runs-on: ${{ matrix.platform }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - platform: [windows-latest, macos-latest, ubuntu-22.04] + include: + - os: windows-latest + target: x86_64-pc-windows-msvc + - os: windows-latest + target: aarch64-pc-windows-msvc + - os: macos-13 + target: x86_64-apple-darwin + - os: macos-14 + target: aarch64-apple-darwin + - os: ubuntu-22.04 + target: x86_64-unknown-linux-gnu + - os: ubuntu-22.04-arm64 + target: aarch64-unknown-linux-gnu steps: - name: Checkout (tag) @@ -84,6 +96,9 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable + - name: Add Rust target + run: rustup target add ${{ matrix.target }} + - name: Cache Rust uses: swatinem/rust-cache@v2 with: @@ -91,7 +106,7 @@ jobs: src-tauri -> src-tauri/target - name: Install Linux dependencies - if: matrix.platform == 'ubuntu-22.04' + if: startsWith(matrix.os, 'ubuntu-22.04') run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf rpm @@ -115,26 +130,30 @@ jobs: prerelease: false tagName: ${{ needs.prepare.outputs.tag_name }} releaseName: EndCat ${{ needs.prepare.outputs.tag_name }} + target: ${{ matrix.target }} - name: Create portable exe (Windows) - if: matrix.platform == 'windows-latest' + if: matrix.os == 'windows-latest' shell: pwsh run: | $version = "${{ needs.prepare.outputs.app_version }}" - $exe = "src-tauri/target/release/endfield-cat.exe" - if (-not (Test-Path -LiteralPath $exe)) { - throw "Missing binary: $exe" - } + $candidates = @( + "src-tauri/target/${{ matrix.target }}/release/endfield-cat.exe", + "src-tauri/target/release/endfield-cat.exe" + ) + $exe = $candidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 + if (-not $exe) { throw "Missing binary for target ${{ matrix.target }}" } $outDir = "src-tauri/target/release/bundle/portable" New-Item -ItemType Directory -Force -Path $outDir | Out-Null - $portableExe = Join-Path $outDir ("endfield-cat_{0}_x64_portable.exe" -f $version) + $suffix = if ("${{ matrix.target }}" -like "aarch64*") { "arm64" } else { "x64" } + $portableExe = Join-Path $outDir ("endfield-cat_{0}_{1}_portable.exe" -f $version, $suffix) Copy-Item -LiteralPath $exe -Destination $portableExe -Force "PORTABLE_EXE=$portableExe" >> $env:GITHUB_ENV - name: Upload portable exe to release (Windows) - if: matrix.platform == 'windows-latest' + if: matrix.os == 'windows-latest' shell: pwsh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}