私は質問に質問したいと思います。Proguardのキープネームでアプリケーションを難読化しないでください
このproguardは、ファイル名をわかりにくくしたり、クラス名だけを除いたすべてのJavaクラスを難読化したりしませんか?ここで
ライン:
-keepnames class ** { *; }
私は自分のアプリケーションのリリースを構築し、公衆にそれをアップロードするには、この行は私のアプリケーションに問題がありますか?この行は、他の人が自分のアプリケーションでリバースエンジニアリングを簡単に実行できるようにします
私のアプリはこの行だけを使って生成することができます。
ありがとうございます。
彼らが縮小段階で削除されていない場合は指定されたクラスやメソッド名の変更からProGuardのを止める-keepnames
ProGuardのSETTINGS
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-dontwarn android.support.v4.**
-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**
-keepnames class org.apache.** {*;}
-keep class org.apache.http.** {*;}
-dontwarn org.apache.commons.logging.LogFactory
-dontwarn org.apache.http.annotation.ThreadSafe
-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe
-keepnames class ** { *; }
-keep class com.android.volley.** { *; }
-keep interface com.android.volley.** { *; }
-keep class com.sun.** {*;}
やや簡単にそうです。そのプロガードはそれほど抑止力ではありません。真実は、あなたが大名であっても、誰もあなたのアプリの99.9%に興味がないということです。それを心配するのに多くの時間を費やすのはちょうど時間の無駄です、そして、彼らはとにかく彼らが望むものを得るでしょう。代わりにあなたのアプリを実際に安全にするためにあなたの努力を費やしてください。 –
ありがとうございます。私はすでに私のアプリケーションを確保するために私の時間を費やしたが、今私は、コードを難読化するための最小限の保護を提供し、私のアプリがこの行を使用して難読化しているか知ってほしい、またはproguardなしでそれを生成すると同じです。 –
どこかにあります。それは、いくつかのことがわかりにくくなるのを防ぎます(クラス名)。これがあなたのアプリケーションを動かすために必要な場合は、おそらくどこかでリフレクションを使ってクラスを作成しているかもしれません。 –