Как избежать proguard для изменения структуры пакета при запутывании - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть проект библиотеки Android со следующей структурой:

- com.domain
------------.internal //internal classes of the library
------------.thirdPartyLib //3rd party library package renamed
------------.library.publicclasses //All the public classes of the library

Идея состоит в том, чтобы настроить progrard на:

- Don't remove any unused classes (since it is a library)
- Obfuscate and optimize everything (including class and methods names) except the classes under **publicclasses** that should keep their names and public elements unchanged

В настоящее время мой конфигурационный файл proguard:

-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keep,allowobfuscation class com.domain.** {*;}
-keep class com.domain.library.publicclasses.** {public *;}
-keep class com.domain.library.publicclasses.Foo {public protected *;}

Результат этой конфигурации:

- com.domain.library.publicclasses //All the public classes of the library
- a.a.a  /// all the internal and thirdPartyLib classes

Моя проблема в том, что a.a.a классы сталкиваются с другими обфусцированными классами библиотеки, поэтому я хотел бы, чтобы структура окончательного класса тоже была

- com.domain.library
--------------------.publicclasses //All the public classes of the library
--------------------.a  /// all the internal and thirdPartyLib classes

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

Как мне этого добиться?

...