Skip to content

Releases: Guardsquare/proguard

7.5

29 May 16:02
af475c6
Compare
Choose a tag to compare

Kotlin support

  • Add support for Kotlin 2.0. (#376)

Java support

  • Add support for Java 22. (#387)

Bugfixes

  • Prevent unwanted name collision leading to missing methods in Kotlin DefaultImpls classes.
  • Prevent ParseException when consumer rules contain -maximumremovedandroidloglevel rules.

7.4.2

31 Jan 17:12
Compare
Choose a tag to compare

Bugfixes

  • Fix potential access issues when backporting.
  • Fix potential NoClassDefFoundError when using type specialization optimization. (#373)
  • Improve processing of Kotlin metadata flags to prevent unnecessary null checks for consumers of protected library artifacts.
  • Prevent potential StackGeneralizationException during optimization when processing methods with many arguments.

Added

  • ProGuardTask support for Gradle configuration cache. (#254)

7.4.1

22 Nov 10:27
Compare
Choose a tag to compare

Bugfixes

  • Fix inadvertent closing of System.out when printing configuration. (#365)

Added

  • Support for parsing of <clinit> methods without specifying the return type in class specifications.

7.4

12 Oct 13:25
Compare
Choose a tag to compare
7.4

Java support

  • Add support for Java 21. (#331)

Kotlin support

  • Add support for Kotlin 1.9.

Bugfixes

  • Fix "NoClassDefFoundError: Failed resolution of: Lorg/apache/logging/log4j/LogManager" when using GSON optimization or -addconfigurationdebugging. (#326)
  • Don't drop Record attribute for records with no components. (proguard-core#118)
  • Fix potential duplication class when name obfuscating Kotlin multi-file facades.
  • Do not inline interface methods during optimization to avoid compilation errors during output writing due to an interface method being made package visible.

Added

  • Support parsing of wildcard * when used as a field type or method return type in class specifications.

7.4.0-beta02

04 Sep 13:02
9a7a97d
Compare
Choose a tag to compare
7.4.0-beta02 Pre-release
Pre-release

Version 7.4-beta02

Java support

  • Add support for Java 21. (#331)

Kotlin support

  • Add support for Kotlin 1.9.

Bugfixes

  • Fix "NoClassDefFoundError: Failed resolution of: Lorg/apache/logging/log4j/LogManager" when using GSON optimization or -addconfigurationdebugging. (#326)
  • Don't drop Record attribute for records with no components. (proguard-core#118)
  • Fix potential duplication of classes when name obfuscating Kotlin multi-file facades.

7.4.0-beta01

27 Jul 16:57
Compare
Choose a tag to compare
7.4.0-beta01 Pre-release
Pre-release

Version 7.4.0-beta01

Java support

  • Add support for Java 21. (#331)

Kotlin support

  • Add support for Kotlin 1.9.

Bugfixes

  • Fix "NoClassDefFoundError: Failed resolution of: Lorg/apache/logging/log4j/LogManager" when using GSON optimization or -addconfigurationdebugging. (#326)

7.3.2

17 Mar 13:44
Compare
Choose a tag to compare

Version 7.3.2

Java support

  • Add support for Java 20. (#294)

Improved

  • Merge classes only when -optimizeaggressively is set.

Bugfixes

  • Fix potential ArrayIndexOutOfBoundsException when processing Kotlin metadata. (#297)

7.3.1

16 Jan 08:47
Compare
Choose a tag to compare

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

15 Nov 17:03
Compare
Choose a tag to compare

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

19 Sep 15:59
Compare
Choose a tag to compare
7.3.0-beta2 Pre-release
Pre-release

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)