На днях словил очень мерзкий баг связанный с пушами🚫 Мерзкий тем…

На днях словил очень мерзкий баг связанный с пушами🚫
Мерзкий тем, что пуши не отображались на Android.

Сначала выяснял почему у меня на Android эмуляторе все работает как часы, а у моих коллег-тестеров, которым я скидываю APK все работает не как часы, вернее вообще не работает.

Мысль о том, что для других я собираю release apk, а для себя debug пришла не сразу, я думаю вы уже догадались, что причина была в этом (Ну половина причины🤷).
На stackoverflow нашел решение: якобы надо sha-1 ключ, которым подписываю релизный APK загрузить в firebase. Но хрен там... Не помогло. Не знаю почему все про это говорили - и без этого ключа все пуши ходили, просто не отображались в release (это я выяснил позже по логам в graylog).

Найти проблему помог скайнет из алиэкспресс под названием deepseek 🈵
Оказалось, что во время сборки release версий стирались (и/или обфусцировались) важные данные связанные с пушами. А занимался этим "шовинизмом" по отношению к пушам ProGuard. Да. Вот так.

Проблему можно решить отключив беспредельщика в файле android/app/build.gradle вот так:
    buildTypes {
        release {
            shrinkResources false
            signingConfig signingConfigs.release
        }
    }

Или написать правила, чтоб он обходил пуши.
Кстати, в документации к flutter_local_notifications есть часть этому посвященная.

Может кому пригодится🙃
Dart packages
flutter_local_notifications | Flutter package
A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform.
👍7
2 апреля 2025 г. 412 3 3