Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Приложение не запускается на нескольких устройствах #224

Closed
KriseevM opened this issue Feb 20, 2024 · 0 comments · Fixed by #226
Assignees
Labels
bug Something isn't working

Comments

@KriseevM
Copy link
Contributor

Есть предположение, что проблема связана с переустановкой приложения из google play или установкой на новое устройство с тем же аккаунтом

Проблема возникает из-за шифрованного хранилища

image

Есть пара репортов об этом в flutter_secure_storage и пара workaround-ов

mogol/flutter_secure_storage#210

mogol/flutter_secure_storage#354

Основной способ решения проблемы - очистка данных через настройки системы, но это очень неудобно и нужно с этим что-то делать

Есть вариант использовать encryptedSharedPrefs вместо стандартного механизма

final FlutterSecureStorage _secure = const FlutterSecureStorage(aOptions: AndroidOptions(
    encryptedSharedPreferences: true,
))

Также предлагают убрать возможность бэкапа, но вроде не помогает

android:allowBackup="false"
android:fullBackupContent="false"

Есть информация как изменить манифест, что тоже может помочь

Есть вариант очистки хранилища при первом запуске

if (prefs.getBool('first_run') ?? true) {
    FlutterSecureStorage storage = FlutterSecureStorage();

    await storage.deleteAll();

    prefs.setBool('first_run', false);
}

И модифицированная версия, где очистка происходит при исключении

static Future<String?> getAccessTokenFromDevice() async {
    const _storage = FlutterSecureStorage();
    try {
        final accessToken = await _storage.read(key: 'accessToken');
        return accessToken;
    } on PlatformException catch (e) {
    // Workaround for https://github.com/mogol/flutter_secure_storage/issues/43
        await _storage.deleteAll();
    }
}

Какой из этих способов реально будет работать - я не знаю :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant