2016-02-08 11 views
5

私はproGuardで新しく、私はリバースエンジニアリングからコードを守るために使っています しかし、私が署名したapkをビルドしたとき、 ProGuardのは、私はあなたがフィルタリングような気がしない場合は、エラーメッセージに表示クラスに対して-dontwarn使用しますが、それは-keepクラスと-dontwarnの違いは何ですか

を言うProGuardのからドキュメントを見た後と言う答えを見つけた私の問題をGoogleで検索しています問題のあるクラスであれば、-ignorewarningsオプション、または-dontwarnオプションを使って自分の運を試すことができます。 実際にあなたが何をしているのかわかっている場合にのみ、これらのオプションを使用してください。

と私はここで私は をやってるのか分からないん私のproguard-rules.proファイル

-dontwarn okio.** 
-dontwarn org.apache.** 
-dontwarn com.appodeal.** 
-dontwarn com.parse.** 
-dontwarn com.squareup.** 

であると私はいくつかの答えを見てきました-keep class

を使用すると言うので、誰かがそれを説明することができます

+1

クラスを維持することは、あなたがproGuardに伝えていることを意味します:このクラスに触れないでください、どんな問題が起きても意味はありません: – Yazan

答えて

5

-keep class指定されたクラスとクラスメンバを保持します。

-dontwarn 未解決の参照については一切警告しないでください。

ここhttp://proguard.sourceforge.net/manual/refcard.html

+0

私は無視して、同じクラス。例えば:-dontwarn okio。** -keep class okio。** – batmaci

2
-dontwarn 

詳細情報は、すべての未解決の参照やその他の重要な問題について警告しないように指定します。オプションのフィルタは正規表現です。 ProGuardは、名前が一致するクラスに関する警告を出力しません。無視する警告は危険です。たとえば、未解決のクラスまたはクラスメンバーが実際に処理に必要な場合、処理されたコードは正しく機能しません。あなたがやっていることがわかっている場合にのみ、このオプションを使用してください!

-keep class 

コードへのエントリポイントとして保存されるクラスとクラスメンバー(フィールドとメソッド)を指定します。例えば、アプリケーションを保持するために、mainメソッドとmainメソッドを指定することができます。ライブラリを処理するには、公開されているすべての要素を指定する必要があります。

希望がこれに役立ちます!

関連する問題