diff --git a/lib/modules/login/controllers/login_controller.dart b/lib/modules/login/controllers/login_controller.dart index 5c432d9be..1ba740e8e 100644 --- a/lib/modules/login/controllers/login_controller.dart +++ b/lib/modules/login/controllers/login_controller.dart @@ -7,6 +7,7 @@ import 'package:flutter/foundation.dart'; import 'package:logger/web.dart'; import 'package:get_storage/get_storage.dart'; import 'package:device_info_plus/device_info_plus.dart'; +import 'package:crypto/crypto.dart'; // 用于生成设备指纹 import 'dart:convert'; import '../../../data/services/db/sqflite_api.dart'; import 'facebookLogin.dart'; @@ -182,10 +183,26 @@ class LoginController extends GetxController { } else if (GetPlatform.isIOS) { IosDeviceInfo iosInfo = await deviceInfo.iosInfo; //print('lxm---iosInfo: $iosInfo.toString()'); + final utsname = iosInfo.utsname; // 包含更详细的设备信息 + //print('lxm---utsname: $utsname'); + final machineId = utsname.machine.toLowerCase(); // 例如: "iPhone14,2" + Logger().d('lxm---machineId: $machineId'); + final systemVersion = utsname.release; // 例如: "16.4.1" + Logger().d('lxm---systemVersion: $systemVersion'); - _deviceId = iosInfo.identifierForVendor ?? 'unknown'; + try { + // 组合 machine 和 systemVersion 生成指纹 + final fingerprint = '$machineId|$systemVersion'; + final hashedFingerprint = + md5.convert(utf8.encode(fingerprint)).toString(); + Logger() + .d('生成设备指纹: $hashedFingerprint (基于 $machineId 和 $systemVersion)'); + _deviceId = hashedFingerprint; + } catch (e) { + Logger().e('生成设备指纹失败: $e'); + _deviceId = iosInfo.identifierForVendor ?? 'unknown'; + } } - Logger().d('lxm--deviceId: $_deviceId'); } catch (e) { Logger().e('获取设备信息失败: $e'); _deviceId = 'unknown';