Help us understand the problem. What is going on with this article?

【R8/ProGuard】マージ後のProGuardルールファイルを確認する方法

ライブラリ モジュールの開発に関する考慮事項ライブラリ モジュールには独自の ProGuard 構成ファイルを含めることができる に記載がある通り、ライブラリ側がProGuardルールファイルを内包している場合があります。( consumerProguardFiles

そういうライブラリを使っている場合、最終的に生成されるProGuardルールファイルは、それぞれのProGuardルールファイルがマージされたものになります。

今回は、そのマージされたProGuardルールファイルを確認する方法を記載します。

printconfiguration を使う:bulb:

方法は簡単で、アプリ側で使っている proguard-rules.pro

-printconfiguration proguard-rules-full.pro

と記述し、 minifyEnabled true な状態でビルドすると proguard-rules-full.pro というファイル名で出力することができます。

参考:https://developer.android.com/studio/build/shrink-code?hl=ja#configuration-files

(おまけ)メンテナンスがしやすい:wrench:

出力されたProGuardルールファイルは、単純に各ProGuardルールファイルを結合しただけのようでした。

そのため、例えばあるライブラリを使っていて、そのライブラリのルールをアプリ側に記述していたが、実はライブラリが内包しているProGuardルールファイルにそもそも記述されているので不要、といったこともわかるため、ProGuardルールファイルのメンテナンスがしやすいです。
(ProGuardルールファイルは一度書くと、なかなか変更などしないですよね。:innocent:

例えば「Glide」の場合

画像ライブラリで有名なGlideですが、GitHubのREADMEに ProGuard の記述があるため、特に調べることなく、アプリ側のProGuardルールファイルにルールをコピペしがちです。

しかしながら、 build.gradleを見てみるとconsumerProguardFiles の記述があり、 proguard-rules.txt を覗いていると、READMEに書かれているルールとほぼ同じもの 1 が書かれているため、アプリ側のProGuardルールファイルにルールを書く必要がないことがわかったりしました。


  1. 正確には for DexGuard only のところがコメントアウトされていました。 

tsumuchan
Androidアプリ開発やっています。Railsも好き。
andfactory
Smartphone Idea Companyとして、人々の生活に「&(アンド)」を届ける。
https://andfactory.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした