Release Notes: This release mainly updates the Gradle task, for easier integration in the Android SDK. ProGuard's notes and warnings now point to the relevant paragraphs on the Troubleshooting page in the documentation. The Troubleshooting page has additional specific information on Android issues.
Release Notes: The most prominent new feature of this release is a custom ProGuard task for the Gradle build system. It provides clean integration, with full support for ProGuard's options in Gradle's configuration language. The optimization step contains internal improvements for optimizing static initializers and optimizing away unnecessary string operations. This release also contains various bugfixes collected since the previous release. The documentation and examples have been extended. This version is compatible with previous versions, so upgrading is as simple as switching to the new jars.
Release Notes: This release mostly fixes a series of minor problems in configuration parsing, optimization, and obfuscation. It also adds a few string optimizations to the optimization step, and small enhancements for configuration with the Ant task. This version is entirely compatible with previous versions, so upgrading is simply a matter of switching to the new jars.
Release Notes: This release adds support for processing Java 7 code. It shrinks class files slightly better. It fixes a number of issues in the optimization and obfuscation steps and in the GUI. For Android developers, it works around a problem with spaces in path names in the Android SDK.
Release Notes: This release mainly fixes bugs in the optimization step. The documentation and examples have been updated and extended. Notably, there are new examples that illustrate how to process Android apps and Scala code.
Release Notes: This release mainly fixes bugs in the various components of ProGuard, its GUI, and ReTrace. There is one new option to preserve the debugging names of method parameters, which is useful when processing APIs. The documentation and examples have been updated and extended.
Release Notes: This release adds a number of features that were requested by users. Notably, the configuration now provides control over individual optimizations, various ways to obfuscate package names, and suppression of warnings and notes. It also fixes a number of bugs and problems. Notably, special characters like \0 are now decoded properly in recent versions of the Java Runtime Environment.
Release Notes: All processing steps have new features. Notably, the optimization step now performs class merging, static single assignment analysis, simplification of tail recursion calls, and a number of new peephole optimizations. The obfuscation step now accepts optional dictionaries for class names and package names. Resource file names are adapted in a more general way. Furthermore, various bugs have been fixed.
Release Notes: The data flow analysis in the optimization step has been refined. Other changes are mostly bugfixes for the optimization step and for the obfuscation step. Notably, the optimization step now avoids increasing the size of methods beyond certain bounds, in order not to upset the HotSpot JIT compiler. The documentation and examples have been updated.
Release Notes: The shrinking step now correctly processes default annotation element values. The optimization step has received a number of bugfixes. Notably, it now avoids stack overflows when analyzing complex methods. The obfuscation step has been fixed to handle potentially ambiguous non-primitive constants in interfaces. The preverification step now handles some less common code constructs. The documentation and examples have been updated.