From 96246a4856341caf1e27aff2862f558cc1634224 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Fri, 19 Jun 2026 15:48:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20HarmonyOS=20BugColl?= =?UTF-8?q?ect=20fingerprint=20=E5=BC=82=E6=AD=A5=E7=AB=9E=E6=80=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fingerprint.ets: computeFingerprint 改为同步函数 - BugCollect.ets: warn() 和 buildIssueEvent() 使用同步 fingerprint 计算 - 移除 .then() 异步调用,确保事件发送时 fingerprint 已计算完成 Co-Authored-By: Claude --- xuqm-sdk/src/main/ets/bugcollect/BugCollect.ets | 17 +++-------------- .../src/main/ets/bugcollect/Fingerprint.ets | 4 ++-- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/xuqm-sdk/src/main/ets/bugcollect/BugCollect.ets b/xuqm-sdk/src/main/ets/bugcollect/BugCollect.ets index 43a41df..2cee21d 100644 --- a/xuqm-sdk/src/main/ets/bugcollect/BugCollect.ets +++ b/xuqm-sdk/src/main/ets/bugcollect/BugCollect.ets @@ -111,7 +111,7 @@ export class BugCollect { eventId: BugCollect.generateUuid(), level: 'warning', platform: 'harmony', - fingerprint: '', // will be computed async + fingerprint: computeFingerprint('Warning', message, ''), appKey: config.appKey, exception: { type: 'Warning', value: message }, breadcrumbs: [...BugCollect.breadcrumbs], @@ -124,11 +124,7 @@ export class BugCollect { sdk: { name: SDK_NAME, version: SDK_VERSION }, } - // Compute fingerprint async - computeFingerprint('Warning', message, '').then(fp => { - issue.fingerprint = fp - BugCollect.queue?.push(issue) - }) + BugCollect.queue?.push(issue) } /** @@ -195,7 +191,7 @@ export class BugCollect { eventId: BugCollect.generateUuid(), level, platform: 'harmony', - fingerprint: fingerprint ?? '', // will be computed async + fingerprint: fingerprint ?? computeFingerprint(error.name ?? 'Error', error.message ?? '', stacktrace), appKey: config.appKey, exception: { type: error.name ?? 'Error', @@ -212,13 +208,6 @@ export class BugCollect { sdk: { name: SDK_NAME, version: SDK_VERSION }, } - // Compute fingerprint async - if (!fingerprint) { - computeFingerprint(error.name ?? 'Error', error.message ?? '', stacktrace).then(fp => { - event.fingerprint = fp - }) - } - return event } diff --git a/xuqm-sdk/src/main/ets/bugcollect/Fingerprint.ets b/xuqm-sdk/src/main/ets/bugcollect/Fingerprint.ets index d93f37b..413fde6 100644 --- a/xuqm-sdk/src/main/ets/bugcollect/Fingerprint.ets +++ b/xuqm-sdk/src/main/ets/bugcollect/Fingerprint.ets @@ -5,9 +5,9 @@ import cryptoFramework from '@ohos.security.cryptoFramework' /** - * 计算错误指纹 + * 计算错误指纹(同步版本) */ -export async function computeFingerprint(type: string, message: string, stacktrace?: string): Promise { +export function computeFingerprint(type: string, message: string, stacktrace?: string): string { const normalizedMessage = normalizeMessage(message) const top3Frames = extractTop3Frames(stacktrace) const raw = `${type}:${normalizedMessage}:${top3Frames}`