I'm having some problems with proguard 4.10 dropping the Signature attribute of SOME classes even though -keepattributes Signature is specified in the configuration, causing problems with reflecting on generic type parameters at runtime.
I've tried versions 4.7, 4.8, 4.9, 4.10, and 4.11-beta-3 with identical configurations; the problem first appears in 4.9 (i.e. 4.7 and 4.8 correctly keep the Signature attribute).
The classes in question are kept via "-keep,allowobfuscation", however changing it to a vanilla "-keep" does not make a difference. Setting -dontoptimize does not make a difference.
The type hierarchy for the affected classes looks like this ('Foobar' being a placeholder for a largish number of different names that all use the same pattern of classes / interfaces):
abstract class FeedItem; class FoobarFeedItem extends FeedItem; abstract class FeedItemModel<T extends FeedItem>; class FoobarFeedItemModel extends FeedItemModel<FoobarFeedItem> implements FoobarMeta;
It is some of these latter type of classes that are losing their Signature. Looking at the bytecode output in JClassLib, the Signature seems to be lost exactly in those cases where the FoobarMeta interface is optimized away.
Forcing the FoobarMeta interfaces to be kept with "-keep,allowobfuscation interface **Meta" seems to make the problem go away.