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