FCM 15.0.2 не может создать токен в сборке релиза с помощью Dexguard - PullRequest
0 голосов
/ 14 мая 2018

Я использую FCM с Dexguard.FCM не может создать токен в сборке релиза.но, это хорошо работает в отладочной сборке.

мои настройки gradle

classpath 'com.google.gms:google-services:3.2.1'
compile 'com.google.android.gms:play-services-base:15.0.2'
compile 'com.google.android.gms:play-services-analytics:15.0.2'
compile 'com.google.firebase:firebase-core:15.0.2'
compile 'com.google.firebase:firebase-messaging:15.0.2'

И, ShrinkResources = false И оптимизировать 5 раз Dexguard

gradle version : 4.1 android gradle plugin : 2.3.3

опции в dexguardFile, связанные с FCM

-keep public class com.google.firebase.** { *; }
-keep public class com.google.firebase.iid.FirebaseInstanceId { public *;}

Ответы [ 2 ]

0 голосов
/ 24 июля 2018

Firebase 15+ требует некоторых дополнительных правил.Например, последняя версия DexGuard 8.2.09 включает в себя все необходимые конфигурации.

0 голосов
/ 20 июня 2018

Для устранения проблемы добавьте следующие правила dexguard:

-keep class com.google.firebase** { *; }
-dontshrink

Кажется, что dexguard удаляет все классы, на которые нет прямой ссылки в коде. Таким образом, точки входа, такие как классы служб для получения токенов Firebase (FirebaseInstanceIdService), будут удалены во время процесса запутывания, если сжатие разрешено.

...