Releases: Guardsquare/proguard
7.3.1
Version 7.3.1
Kotlin support
- Add support for Kotlin 1.8.
Improved
- Conservative optimization is now the default. Previously, it could be enabled by setting the
optimize.conservatively
system property. This has been replaced with the-optimizeaggressively
option, which sets optimization to aggressive. - Improve optimization performance in edge cases with generated code. (#283)
Bugfixes
- Fix
-keepparameternames
to keep Kotlin function, constructor and property setter parameter names. - Fix
-keepparameternames
to keep Kotlin annotation constructor parameter names. - Fix
-keepparameternames
to keep Kotlin interface parameter names. - Fix potential
NullPointerException
while processing enum classes with invalid Kotlin metadata. - Fix potential
Instruction has invalid constant index size
error during GSON optimization. - Fix member specialization & generalization optimizations.
- Fix potential "Π‘an't find referenced class ClassName$DefaultImpls" warnings. (#290)
7.3.0
Java support
To allow ProGuard to continue to optimize, obfuscate and shrink Java class files ProGuard now supports all Java versions including Java 19.
- Add support for Java 19. (
PGD-247
)
Kotlin support
ProGuard 7.3 deprecates the -keepkotlinmetadata
option. You can use -keep class kotlin.Metadata
instead
which automatically enables processing of Kotlin metadata. Some consumer rules, from libraries
such as kotlin-reflect
, already contain this rule which means that Kotlin metadata processing will be enabled
automatically in those cases.
- Add support for Kotlin 1.7.
- Improve support for Kotlin library projects. (
T3752
) - Automatically process Kotlin Metadata when keeping the
kotlin.Metadata
annotation. (T3116
)
Improved
- Improve app startup times when using
-addconfigurationdebugging
. (T17153
)
Bug fixes
- Prevent merging classes with native methods that would result in
UnsatisfiedLinkError
. - Fix optimization of simple enums (optimization
class/unboxing/enums
). - Prevent potential build time
NullPointerException
when processing Kotlin interface methods. - Fix ProGuard Gradle Plugin not working correctly on Windows. (
PGD-272
)
7.3.0-beta2
Version 7.3.0-beta2
7.3.0-beta2 includes 2 bug fixes, on top of the changes in 7.3.0-beta1.
Bug fixes
- Prevent potential build time
NullPointerException
when processing Kotlin interface methods. - Fix ProGuard Gradle Plugin not working correctly on Windows. (
PGD-272
)
7.3.0-beta1
Version 7.3.0-beta1
Java support
New Java versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Java class files ProGuard now supports all Java versions including Java 19.
- Add support for Java 19. (#247)
Kotlin support
New Kotlin versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Kotlin generated class files and their corresponding metadata ProGuard now supports Kotlin reading Kotlin classes from version 1.0 to 1.7 and writing Kotlin metadata with version 1.6 (readable by Kotlin reflection library / compiler 1.5 - 1.7).
- Add support for Kotlin 1.7.
- Improve support for Kotlin library projects. (
T3752
)
Improved
- Improve app startup times when using
-addconfigurationdebugging
. (T17153
)
Bug fixes
- Prevent merging classes with native methods that would result in UnsatisfiedLinkError.
- Fix optimization of simple enums (optimization
class/unboxing/enums
).
7.2.2
Bug fixes
- Fix "Can't save configuration file" error in ProGuardGUI. (
PGD-220
) - Fix missing warnings in ProGuardGUI. (
PGD-239
) - Fix rule configurations that extend annotation classes. (
PGD-229
) - Fix "No matching variant" Gradle plugin error when using Gradle 7.4 and Java 8. (
PGD-2311
) - Fix potential Kotlin metadata initialization issue when using the
-Xno-optimized-callable-references
compiler option. (T16486
) - Fix potential "bad class file" caused by sorting attributes in class files (
PGD-192
)
Improved
- Remove Kotlin Intrinsics strings by default, without requiring the
-keepkotlinmetadata
option. (T16518
)
7.2.1
Version 7.2.1
Java Support
- Update maximum supported Java class version to 62.65535 (Java 18 ea). (
T13973
) - Deprecate
-target
for classes compiled with Java > 11. (T13968
)
Improved
- Add consumerRuleFilter to the ProGuard Gradle plugin. (
T4134
) - Prevent the generation of Windows reserved names. (
T3937
)
Bug fixes
- Prevent "Expecting type and name" parse error when using the
androidx.window
library in an Android project. (T13715
) - Fix shrinking of annotations during GSON optimization.
7.2.0
Version 7.2
Java Support
New Java versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Java class files ProGuard now supports all Java versions including Java 17.
- Add support for Java 17. (
PGD-132
)
Kotlin Support
New Kotlin versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Kotlin generated class files and their corresponding metadata ProGuard now supports Kotlin reading Kotlin classes from version 1.0 to 1.6 and writing Kotlin metadata with version 1.5 (readable by Kotlin reflection library / compiler 1.4 - 1.6).
- Add support for processing Kotlin 1.5 and 1.6 metadata. (
PGD-179
,DGD-3467
,PGC-31
,T4777
) - Add support for matching Kotlin inline class type parameters when using
includedescriptorclasses
keep rule modifier (requires-keepkotlinmetadata
). (T13653
)
Improved
- Upgrade log4j2 dependency to 2.17.1 in response to CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 and CVE-2021-44832
- Improve build speed when using
-keepkotlinmetadata
. (T5205
)
Bug fixes
- Fix potential
NullPointerException
when initializing Kotlin callable references. (T5899
) - Prevent requiring
--enable-preview
on a JVM for Java 16 class files (write class file version60.0
instead of60.65535
). - Fix potential
StringIndexOutOfBoundsException
during signing. (T7004
) - Fix potential
StackOverflowError
when processing Java 16 records with type annotations. (PGD-182
) - Fix potential
StringOutOfBoundsException
when processing Kotlin callable references. (T5927
) - Fix potential
NullPointerException
when processing Kotlin callable references. (T6138
) - Fix potential
Stack size becomes negative
exception when processing large methods. (T5721
) - Fix potential
ClassFormatError
due to adding multiple annotation attributes when processing Kotlin code. - Fix potential
NullPointerException
due to missing classes. - Prevent possible
LinkageError
when making package-private final methods that are shadowed protected. (T7056
)
7.2.0-beta6
Kotlin 1.6 Support
New Kotlin versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Kotlin generated class files and their corresponding metadata ProGuard now supports Kotlin reading Kotlin classes from version 1.0 to 1.6 and writing Kotlin metadata with version 1.5 (readable by Kotlin reflection library / compiler 1.4 - 1.6).
- Add support for processing Kotlin 1.5 and 1.6 metadata. (
PGD-179
,DGD-3467
,PGC-31
,T4777
)
Improved
- Upgrade log4j2 dependency to 2.17.1 in response to CVE-2021-44832.
- Add support for matching Kotlin inline class type parameters when using
includedescriptorclasses
keep rule modifier (requires-keepkotlinmetadata
). (T13653
)
Bugfixes
- Fix incorrect handling of Record.Signature attribute (
PGD-194
)
7.2.0-beta5
Improved
- Upgrade log4j2 dependency to 2.17.0 in response to CVE-2021-45105.
7.2.0-beta4
Improved
- Upgrade log4j2 dependency to 2.16.0 in response to CVE-2021-45046.