1
+ # Add project specific ProGuard rules here.
2
+ # You can control the set of applied configuration files using the
3
+ # proguardFiles setting in build.gradle.
4
+ #
5
+ # For more details, see
6
+ # http://developer.android.com/guide/developing/tools/proguard.html
7
+
8
+ -dontoptimize
9
+ -dontshrink
10
+ #-dontusemixedcaseclassnames
11
+ #-dontskipnonpubliclibraryclasses
12
+ #-dontpreverify
13
+ #-verbose
14
+ #
15
+ -optimizationpasses 7 # use for final build
16
+ -dontusemixedcaseclassnames
17
+ #-dontskipnonpubliclibraryclasses
18
+ #-dontpreverify
19
+ -verbose
20
+
21
+ # custom app activity proguard
22
+ -keep public class cc.openframeworks.android.OFActivity { public <methods>; }
23
+ -keep public class cc.openframeworks.android.R { public <methods>; }
24
+
25
+
26
+ #-dontobfuscate android classes
27
+ -keep public class * extends android.app.Activity
28
+ -keep public class * extends android.app.Application
29
+ -keep public class * extends android.app.Service
30
+ -keep public class * extends android.content.BroadcastReceiver
31
+ -keep public class * extends android.content.ContentProvider
32
+ -keep public class * extends android.app.backup.BackupAgentHelper
33
+ -keep public class * extends android.preference.Preference
34
+
35
+ #-dontobfuscate openFrameworks android classes
36
+ -keep public class cc.openframeworks.OFAndroid { public <methods>; }
37
+ -keep public class cc.openframeworks.OFAndroidLifeCycleHelper { public <methods>; }
38
+ -keep public class cc.openframeworks.OFAndroidWindow { public <methods>; }
39
+ -keep public class cc.openframeworks.OFAndroidSoundPlayer { public <methods>; }
40
+ -keep public class cc.openframeworks.OFGLSurfaceView { public <methods>; }
41
+ -keep public class cc.openframeworks.OFAndroidLifeCycle { public <methods>; }
42
+ -keep public class cc.openframeworks.OFActivity { public <methods>; }
43
+ -keep public class cc.openframeworks.ContextFactory { public <methods>; }
44
+ -keep public class cc.openframeworks.OFEGLConfigChooser { public <methods>; }
45
+ -keep public class cc.openframeworks.OFGestureListener { public <methods>; }
46
+ -keep public class cc.openframeworks.OFAndroidController { public <methods>; }
47
+
48
+ #-dontobfuscate GooglePlay Games android classes if used
49
+ -keep class com.google.android.gms.games.leaderboard.** { *; }
50
+ -keep class com.google.android.gms.games.snapshot.** { *; }
51
+ -keep class com.google.android.gms.games.achievement.** { *; }
52
+ -keep class com.google.android.gms.games.event.** { *; }
53
+ -keep class com.google.android.gms.games.stats.** { *; }
54
+ -keep class com.google.android.gms.games.video.** { *; }
55
+ -keep class com.google.android.gms.games.* { *; }
56
+ -keep class com.google.android.gms.signin.** { *; }
57
+ -keep class com.google.android.gms.dynamic.** { *; }
58
+ -keep class com.google.android.gms.dynamite.** { *; }
59
+ -keep class com.google.android.gms.tasks.** { *; }
60
+ -keep class com.google.android.gms.security.** { *; }
61
+ -keep class com.google.android.gms.base.** { *; }
62
+ -keep class com.google.android.gms.actions.** { *; }
63
+ -keep class com.google.games.bridge.** { *; }
64
+ -keep class com.google.android.gms.common.api.** { *; }
65
+ -keep class com.google.android.gms.games.quest.** { *; }
66
+ -keep class com.google.android.gms.nearby.** { *; }
67
+
68
+ -keepclasseswithmembernames class * {
69
+ native <methods>;
70
+ }
71
+
72
+ -keepclasseswithmembers class * {
73
+ public <init>(android.content.Context, android.util.AttributeSet);
74
+ }
75
+
76
+ -keepclasseswithmembers class * {
77
+ public <init>(android.content.Context, android.util.AttributeSet, int);
78
+ }
79
+
80
+ # note that <methods> means any method
81
+ -keepclasseswithmembernames,includedescriptorclasses class * {
82
+ native <methods>;
83
+ }
84
+
85
+ -keepclassmembers class * extends android.app.Activity {
86
+ public void *(android.view.View);
87
+ }
88
+
89
+ -keepclassmembers enum * {
90
+ public static **[] values();
91
+ public static ** valueOf(java.lang.String);
92
+ }
93
+
94
+ -keep class * implements android.os.Parcelable {
95
+ public static final android.os.Parcelable$Creator *;
96
+ }
97
+
98
+
99
+ # If your project uses WebView with JS, uncomment the following
100
+ # and specify the fully qualified class name to the JavaScript interface
101
+ # class:
102
+ #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
103
+ # public *;
104
+ #}
105
+
106
+ # Uncomment this to preserve the line number information for
107
+ # debugging stack traces.
108
+ #-keepattributes SourceFile,LineNumberTable
109
+
110
+ # If you keep the line number information, uncomment this to
111
+ # hide the original source file name.
112
+ #-renamesourcefileattribute SourceFile
113
+
114
+ # If your project uses WebView with JS, uncomment the following
115
+ # and specify the fully qualified class name to the JavaScript interface
116
+ # class:
117
+ #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
118
+ # public *;
119
+ #}
120
+
121
+ # Uncomment this to preserve the line number information for
122
+ # debugging stack traces.
123
+ -keepattributes SourceFile,LineNumberTable
124
+
125
+ # If you keep the line number information, uncomment this to
126
+ # hide the original source file name.
127
+ #-renamesourcefileattribute SourceFile
0 commit comments