Compare commits

..

12 Commits

Author SHA1 Message Date
hicccc77
0cf8ea8166 chore: bump version to 4.2.0 2026-03-26 23:20:42 +08:00
hicccc77
74b830dd79 chore: update service files and xkey_helper
- xkey_helper: use mach exception port to intercept EXC_BREAKPOINT,
  fixes key capture failure on macOS 26.2
2026-03-26 23:19:08 +08:00
cc
8668c168a7 333 2026-03-26 22:43:59 +08:00
cc
8b8c5f33ce 333 2026-03-26 22:34:50 +08:00
cc
2fcbb026df 222 2026-03-26 22:32:33 +08:00
cc
66ee72380d 222 2026-03-26 22:30:21 +08:00
cc
4f16345351 111 2026-03-26 22:26:33 +08:00
cc
5110618996 再次修复 2026-03-26 22:19:30 +08:00
cc
bf51368cf4 修复密钥问题 2026-03-26 22:16:30 +08:00
cc
d6054745d6 修复macos打包错误 2026-03-26 22:00:42 +08:00
hicccc77
a4731f25f8 chore: update xkey_helper (macOS) with pure semantic scan mode
Always use pure semantic scan mode (KNOWN_RVA=0) regardless of
WeChat version, improving compatibility for versions < 4.1.8.
2026-03-26 21:16:14 +08:00
hicccc77
6c4507e495 fix(ci): remove invalid --no-fail-on-no-release flag from gh release edit 2026-03-26 20:33:18 +08:00
12 changed files with 17 additions and 14 deletions

View File

@@ -61,12 +61,12 @@ 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"
run: | run: |
npx electron-builder --mac dmg --arm64 --publish always npx electron-builder --mac --arm64 --publish always
release-linux: release-linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -308,4 +308,4 @@ jobs:
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
gh release edit "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --latest --no-fail-on-no-release --draft=false --prerelease=false gh release edit "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --latest --draft=false --prerelease=false

View File

@@ -1300,7 +1300,7 @@ function registerIpcHandlers() {
try { try {
console.log('[Update] 开始下载更新...') console.log('[Update] 开始下载更新...')
await autoUpdater.downloadUpdate() await autoUpdater.downloadUpdate()
} catch (error) { } catch (error: any) {
console.error('[Update] 下载更新失败:', error) console.error('[Update] 下载更新失败:', error)
// 失败时清理状态和监听器 // 失败时清理状态和监听器
isDownloadInProgress = false isDownloadInProgress = false
@@ -1312,7 +1312,10 @@ function registerIpcHandlers() {
autoUpdater.removeListener('update-downloaded', downloadedHandler) autoUpdater.removeListener('update-downloaded', downloadedHandler)
downloadedHandler = null downloadedHandler = null
} }
throw error
// 统一错误提示格式,避免出现 [object Object] 的 JSON 字符串
const errorMessage = error.message || (typeof error === 'string' ? error : JSON.stringify(error))
throw new Error(errorMessage)
} }
}) })
@@ -2636,19 +2639,19 @@ function registerIpcHandlers() {
// 密钥获取 // 密钥获取
ipcMain.handle('key:autoGetDbKey', async (event) => { ipcMain.handle('key:autoGetDbKey', async (event) => {
return keyService.autoGetDbKey(180_000, (message, level) => { return keyService.autoGetDbKey(180_000, (message: string, level: number) => {
event.sender.send('key:dbKeyStatus', { message, level }) event.sender.send('key:dbKeyStatus', { message, level })
}) })
}) })
ipcMain.handle('key:autoGetImageKey', async (event, manualDir?: string, wxid?: string) => { ipcMain.handle('key:autoGetImageKey', async (event, manualDir?: string, wxid?: string) => {
return keyService.autoGetImageKey(manualDir, (message) => { return keyService.autoGetImageKey(manualDir, (message: string) => {
event.sender.send('key:imageKeyStatus', { message }) event.sender.send('key:imageKeyStatus', { message })
}, wxid) }, wxid)
}) })
ipcMain.handle('key:scanImageKeyFromMemory', async (event, userDir: string) => { ipcMain.handle('key:scanImageKeyFromMemory', async (event, userDir: string) => {
return keyService.autoGetImageKeyByMemoryScan(userDir, (message) => { return keyService.autoGetImageKeyByMemoryScan(userDir, (message: string) => {
event.sender.send('key:imageKeyStatus', { message }) event.sender.send('key:imageKeyStatus', { message })
}) })
}) })

View File

@@ -389,7 +389,7 @@ export class KeyServiceMac {
`set timeoutSec to ${timeoutSec}`, `set timeoutSec to ${timeoutSec}`,
'try', 'try',
'with timeout of timeoutSec seconds', 'with timeout of timeoutSec seconds',
'set outText to do shell script cmd with administrator privileges', 'set outText to do shell script (cmd & " 2>&1") with administrator privileges',
'end timeout', 'end timeout',
'return "WF_OK::" & outText', 'return "WF_OK::" & outText',
'on error errMsg number errNum partial result pr', 'on error errMsg number errNum partial result pr',

6
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "weflow", "name": "weflow",
"version": "2.1.0", "version": "4.2.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "weflow", "name": "weflow",
"version": "2.1.0", "version": "4.2.0",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"echarts": "^5.5.1", "echarts": "^5.5.1",
@@ -11062,4 +11062,4 @@
} }
} }
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "weflow", "name": "weflow",
"version": "2.1.0", "version": "4.2.0",
"description": "WeFlow", "description": "WeFlow",
"main": "dist-electron/main.js", "main": "dist-electron/main.js",
"author": { "author": {
@@ -178,4 +178,4 @@
], ],
"icon": "resources/icon.icns" "icon": "resources/icon.icns"
} }
} }

Binary file not shown.

BIN
resources/libwcdb_api.so Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
resources/xkey_helper_macos Normal file

Binary file not shown.

BIN
temp_assets.json Normal file

Binary file not shown.