getAppUUID static method

Future<String> getAppUUID()

获取钥匙串中存储的应用UUID

Implementation

static Future<String> getAppUUID() async {
  final appInfo = await getAppInfo();
  String? value;

  try {
    value = await KeychainUtil.read(key: '${appInfo.packageName}.appUUID');
  } catch (e) {
    Logger.trace('Failed to read UUID from keychain: $e');
  }

  if (value == null) {
    value = const Uuid().v7();
    try {
      //防止触发安全机制崩溃
      Future.delayed(const Duration(milliseconds: 500));
      KeychainUtil.write(
        key: '${appInfo.packageName}.appUUID',
        value: value,
      ).then((bool success) {
        if (success) {
          Logger.trace('Write UUID to keychain success: $value');
        }
      });
    } catch (writeError) {
      Logger.trace('Failed to write UUID to keychain: $writeError');
    }
  }
  return value;
}