Skip to content

Releases: Guardsquare/proguard

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)

7.3.0-beta1

09 Sep 16:03
Compare
Choose a tag to compare
7.3.0-beta1 Pre-release
Pre-release

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

04 Jun 11:21
Compare
Choose a tag to compare

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

18 Feb 18:40
Compare
Choose a tag to compare

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

25 Jan 08:28
Compare
Choose a tag to compare

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

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 version 60.0 instead of 60.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

07 Jan 12:42
Compare
Choose a tag to compare
7.2.0-beta6 Pre-release
Pre-release

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

21 Dec 09:45
Compare
Choose a tag to compare
7.2.0-beta5 Pre-release
Pre-release

Improved

7.2.0-beta4

16 Dec 08:19
Compare
Choose a tag to compare
7.2.0-beta4 Pre-release
Pre-release

Improved