1

在我编译发布 apk 之前,我在我的 proguard 规则中使用以下代码来删除任何可能留下的 log.di。

> -assumenosideeffects class android.util.Log {
>     public static *** d(...);
>     public static *** v(...); }

有没有办法对所有原木进行处理?

Timber.w("This shouldn't show in release apk when decompiled");
4

1 回答 1

1

同样的方法——但使用一个Timber类而不是Log——行不通吗?例如:

-assumenosideeffects class timber.log.Timber* {
    public static *** v(...);
    public static *** d(...);
    public static *** i(...);
}

或者,您可以按照示例项目执行以下操作:

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.
    }
  }
}
于 2017-12-30T20:19:53.980 回答