从我的 apk 中删除所有木材日志
Stripping out all Timber logs from my apk
我在我的 proguard 规则中使用以下代码来删除我在编译发布 apk 之前可能留下的任何 log.d。
> -assumenosideeffects class android.util.Log {
> public static *** d(...);
> public static *** v(...); }
有没有办法对所有的原木都这样做?
Timber.w("This shouldn't show in release apk when decompiled");
相同的方法 - 但使用 Timber
class 而不是 Log
- 是否行不通?例如:
-assumenosideeffects class timber.log.Timber* {
public static *** v(...);
public static *** d(...);
public static *** i(...);
}
或者,您可以按照 sample project 执行以下操作:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new DebugTree());
} else {
Timber.plant(new ProductionTree());
}
}
private static class ProductionTree extends Timber.Tree {
@Override
protected void log(int priority, String tag, String message, Throwable t) {
// Do whatever (or nothing) here.
}
}
}
我在我的 proguard 规则中使用以下代码来删除我在编译发布 apk 之前可能留下的任何 log.d。
> -assumenosideeffects class android.util.Log {
> public static *** d(...);
> public static *** v(...); }
有没有办法对所有的原木都这样做?
Timber.w("This shouldn't show in release apk when decompiled");
相同的方法 - 但使用 Timber
class 而不是 Log
- 是否行不通?例如:
-assumenosideeffects class timber.log.Timber* {
public static *** v(...);
public static *** d(...);
public static *** i(...);
}
或者,您可以按照 sample project 执行以下操作:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new DebugTree());
} else {
Timber.plant(new ProductionTree());
}
}
private static class ProductionTree extends Timber.Tree {
@Override
protected void log(int priority, String tag, String message, Throwable t) {
// Do whatever (or nothing) here.
}
}
}