Skip to content

Commit 34ee48f

Browse files
committed
Add a Proguard rule to keep the class name if the class contains a State or StateReflection annoation, see #23
1 parent ef3dae7 commit 34ee48f

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.1.1
2+
3+
* Add a Proguard rule to keep the class name if the class contains a `State` or `StateReflection annoation`, see #23
4+
15
## 1.1.0 (2017-06-05)
26

37
* Remove unnecessary Proguard rules prevent proper obfuscation, see #15

deviceTests/src/main/kotlin/com/evernote/android/state/demo/ProguardTest.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ class ProguardTest {
3737

3838
@Test
3939
fun verifyCodeObfuscated() {
40-
TestProguard::class.java.getDeclaredField("a") // test1
41-
TestProguard::class.java.getDeclaredField("b") // test2
40+
TestProguard::class.java.getDeclaredField("test1") // test1
41+
TestProguard::class.java.getDeclaredField("test2") // test2
4242
TestProguard::class.java.getDeclaredField("test3")
4343
TestProguard::class.java.getDeclaredMethod("a") // getTest2()
4444

45-
TestProguardBundler::class.java.getDeclaredField("a") // mData2
45+
TestProguardBundler::class.java.getDeclaredField("mData2") // mData2
4646
TestProguardBundler::class.java.getDeclaredField("mDataReflOtherName")
47+
TestProguardBundler::class.java.getDeclaredMethod("a") // getData2()
4748
}
4849

4950
@Test

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
#VERSION_NAME=1.1.0
2-
VERSION_NAME=1.1.0-SNAPSHOT
1+
#VERSION_NAME=1.1.1
2+
VERSION_NAME=1.1.1-SNAPSHOT
33
VERSION_CODE=1

library/proguard.cfg

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
-dontwarn com.evernote.android.state.**
22
-keep class com.evernote.android.state.** { *; }
33
-keep class **$$StateSaver { *; }
4-
-keepclassmembers class * {
5-
@com.evernote.android.state.StateReflection <fields>;
6-
}
4+
-keepnames class * { @com.evernote.android.state.State *;}
5+
-keepnames class * { @com.evernote.android.state.StateReflection *;}

0 commit comments

Comments
 (0)