-
Notifications
You must be signed in to change notification settings - Fork 624
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
Added bundled proguard rules #2092
Conversation
Co-authored-by: Leonid Startsev <[email protected]>
9f2bcad
to
a14442d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the thorough investigation!
Co-authored-by: Leonid Startsev <[email protected]>
I think an additional README comment should be added regarding Proguard/R8 usage with obfuscation. In this case serialized class and field names will be obfuscated, and will be non-stable. Personally I use @SerialName annotations to preserve serialized name stability, but others might opt for additional keep rules. (Just don't make those default rules, please!) |
Serialized class names are stored in the descriptor, so it shouldn't affect polymorphic serialization, only error messages would be altered |
The new README reads as if the new default Proguard rules took care of any minimization/obfuscation issues, but that's not true. Obfuscated names are not stable, so the next app build will not be able to read back some of the serialized data, at least with JSON serialization. Pretty sure I tested this.
Ideally the README could mention the problem with obfuscation and highlight various potential solutions, like @SerialName and custom user keep rules and annotations. |
Resolves #1121
Resolves #1899
Resolves #1900
Resolves #2050