Merge pull request #790 from hicccc77/dev

尝试支持mac下载更新
This commit is contained in:
cc
2026-04-18 15:37:27 +08:00
committed by GitHub
5 changed files with 23 additions and 9 deletions

View File

@@ -107,7 +107,7 @@ jobs:
run: | run: |
export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/" export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/"
echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR" echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR"
npx electron-builder --mac dmg --arm64 --publish never '--config.publish.channel=dev' '--config.artifactName=${productName}-dev-arm64.${ext}' npx electron-builder --mac dmg zip --arm64 --publish never '--config.publish.channel=dev' '--config.artifactName=${productName}-dev-arm64.${ext}'
- name: Upload macOS arm64 assets to fixed release - name: Upload macOS arm64 assets to fixed release
env: env:

View File

@@ -136,7 +136,7 @@ jobs:
run: | run: |
export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/" export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/"
echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR" echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR"
npx electron-builder --mac dmg --arm64 --publish never '--config.publish.channel=preview' '--config.artifactName=${productName}-preview-arm64.${ext}' npx electron-builder --mac dmg zip --arm64 --publish never '--config.publish.channel=preview' '--config.artifactName=${productName}-preview-arm64.${ext}'
- name: Upload macOS arm64 assets to fixed preview release - name: Upload macOS arm64 assets to fixed preview release
env: env:

View File

@@ -43,7 +43,7 @@ jobs:
npx tsc npx tsc
npx vite build npx vite build
- name: Package and Publish macOS arm64 (unsigned DMG) - name: Package and Publish macOS arm64 (unsigned DMG + ZIP)
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: "false" CSC_IDENTITY_AUTO_DISCOVERY: "false"
@@ -51,7 +51,7 @@ jobs:
run: | run: |
export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/" export ELECTRON_BUILDER_BINARIES_MIRROR="https://github.com/electron-userland/electron-builder-binaries/releases/download/"
echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR" echo "Using ELECTRON_BUILDER_BINARIES_MIRROR=$ELECTRON_BUILDER_BINARIES_MIRROR"
npx electron-builder --mac dmg --arm64 --publish always npx electron-builder --mac dmg zip --arm64 --publish always
- name: Inject minimumVersion into latest yml - name: Inject minimumVersion into latest yml
env: env:

View File

@@ -1891,9 +1891,17 @@ function registerIpcHandlers() {
downloadedHandler = null downloadedHandler = null
} }
// 统一错误提示格式,避免出现 [object Object] 的 JSON 字符串 const errorCode = typeof error?.code === 'string' ? error.code : ''
const errorMessage = error.message || (typeof error === 'string' ? error : JSON.stringify(error)) const rawErrorMessage =
throw new Error(errorMessage) typeof error?.message === 'string'
? error.message
: (typeof error === 'string' ? error : JSON.stringify(error))
if (errorCode === 'ERR_UPDATER_ZIP_FILE_NOT_FOUND' || /ZIP file not provided/i.test(rawErrorMessage)) {
throw new Error('当前发布版本缺少 macOS 自动更新所需的 ZIP 包,请联系开发者重新发布该版本')
}
throw new Error(rawErrorMessage || '下载更新失败,请稍后重试')
} }
}) })

View File

@@ -652,6 +652,12 @@ function SettingsPage({ onClose }: SettingsPageProps = {}) {
void refreshWhisperStatus(whisperModelDir) void refreshWhisperStatus(whisperModelDir)
}, [whisperModelDir]) }, [whisperModelDir])
const getErrorMessage = (error: any): string => {
const raw = typeof error?.message === 'string' ? error.message : String(error ?? '')
const normalized = raw.replace(/^Error:\s*/i, '').trim()
return normalized || '未知错误'
}
const handleCheckUpdate = async () => { const handleCheckUpdate = async () => {
if (isCheckingUpdate) return if (isCheckingUpdate) return
setIsCheckingUpdate(true) setIsCheckingUpdate(true)
@@ -666,7 +672,7 @@ function SettingsPage({ onClose }: SettingsPageProps = {}) {
showMessage('当前已是最新版', true) showMessage('当前已是最新版', true)
} }
} catch (e: any) { } catch (e: any) {
showMessage(`检查更新失败: ${e}`, false) showMessage(`检查更新失败: ${getErrorMessage(e)}`, false)
} finally { } finally {
setIsCheckingUpdate(false) setIsCheckingUpdate(false)
} }
@@ -681,7 +687,7 @@ function SettingsPage({ onClose }: SettingsPageProps = {}) {
showMessage('正在下载更新...', true) showMessage('正在下载更新...', true)
await window.electronAPI.app.downloadAndInstall() await window.electronAPI.app.downloadAndInstall()
} catch (e: any) { } catch (e: any) {
showMessage(`更新失败: ${e}`, false) showMessage(`更新失败: ${getErrorMessage(e)}`, false)
setIsDownloading(false) setIsDownloading(false)
} }
} }