Gson с Proguard, забыл исключить мою модель данных из правил Proguard - PullRequest
0 голосов
/ 10 октября 2018

У меня есть приложение, выпущенное несколькими сотнями пользователей, которое хранит все данные, записанные (это приложение для отслеживания фитнеса) на устройстве.Он сериализует данные в JSON с Gson, и я использую Proguard.

Однако ... Я забыл исключить мои классы данных (которые сериализуются / десериализуются) из правил Proguard.

Несколько месяцев назад я выпустил приложение с минимальными правилами Proguard, чтобы его можно было собрать.

Буквально на прошлой неделе я выпустил обновление, улучшающее что-то еще в моем приложении.Моя студия gradle / android была обновлена, и когда я пошел на сборку, в результате Proguard я получил ошибку сборки - я спешил выпустить, поэтому установил «minify» в false и выпустил релиз.

Мое приложение больше не может открывать исторические данные, возможно, потому, что поля JSON запутаны в результате не исключения классов из правил Proguard.

Всегда ли Proguard запутывает один и тот же способ при последующих сборках?Т.е., если мне удастся решить мою ошибку сборки Proguard, смогут ли мои пользователи видеть свои старые данные?

Если нет, я думаю, у меня есть 2 варианта:

  1. Полагаю, мне нужно написать свой собственный десериализатор / сериализатор для Gson, но мне нужно будет "взломать" оригинальную запутанность Proguard.В настоящее время я представляю себе рутирование устройства, установку старого APK на телефон, получение некоторых данных и их сериализацию, затем просмотр файла и сравнение его с моими классами, в надежде, что мне удастся разработать шаблон ............веселье!
  2. Извинитесь перед пользователями, попросите их переустановить приложение и потерять все свои данные.

У меня есть другие варианты?!

...