getAppUUID static method
获取钥匙串中存储的应用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;
}