
Dagger Hilt 2.28-alpha 버전 사용시 주의 사항 [Bug]
Mgmix
·2020. 10. 16. 00:55
Dagger Hilt 2.28-alpha 버전으로 개발을 마친 신규 앱을 출시를 하는 상황에서
앱에서 사용중이지 않는 권한에 대한 경고를 확인 하였다.
android.permission.READ_PHONE_STATE 와 android.permission.READ_EXTERNAL_STORAGE 에 대한 권한이 사용되고 있다고 표기 되었는데, 사용중인 라이브러리에서 또한 짐작가는 곳이 없었다.
안드로이드는 사용중인 라이브러리를 포함한 모든 권한들은 Manifest 에 명시하게 되어있고 모든 Manifest 의 정보들은
빌드시에 하나의 파일로 병합 되기에 어디서 권한을 사용하고 있는지 확인이 가능하다.
매 빌드시마다 생성되는 app/build 폴더에서 outputs/logs 에 들어가면 manifest-merger-debug-report 또는 manifest-merger-release-report 가 있는데 여기서 앱 전체 Manifest 정보가 확인이 가능하다.
문제가 되는 부분의 로그는 다음과 같았다.
IMPLIED from pacakge\app\src\main\AndroidManifest.xml:2:1-43:12 reason: dagger.lint has a targetSdkVersion < 4
uses-permission#android.permission.READ_PHONE_STATE
IMPLIED from pacakge\app\src\main\AndroidManifest.xml:2:1-43:12 reason: dagger.lint has a targetSdkVersion < 4
uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from pacakge\app\src\main\AndroidManifest.xml:2:1-43:12 reason: dagger.lint requested WRITE_EXTERNAL_STORAGE
Dagger 의 lint 부분의 문제가 있는 것으로 보아 버그로 생각하고 찾아보니, 이미 이슈에 대해 리포팅이 되고 수정이 완료 된 상태로 확인 했다.
> 관련 이슈 링크 및 커밋 내용
github.com/google/dagger/issues/1864
2.28 dagger-android(-support) adding AndroidManifest permissions · Issue #1864 · google/dagger
Updating to 2.28 on either of the Android specific Dagger dependencies is adding the following permissions to the AndroidManifest file: github.com
github.com/google/dagger/commit/85f285c24023ae0f20efc4dc1eb0dddb99c1c81a
Add minSdkVersion to Lint AndroidManifest.xml · google/dagger@85f285c
Otherwise implicit merged permissions show up in users AndroidManifest. Fixes https://github.com/google/dagger/issues/1864 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED...
github.com
Dagger Hilt 2.28 버전 기반으로 작성된 Dagger Hilt 2.28-alpha 의 경우 다음 업데이트가 나오기 전까지는 버그가 해결되지 않기에, Dagger-lint-aar 를 추가로 사용해야 한다.
2.28.1 버전에서 수정 되었기에 해당 버전 이상을 적용 하면 해결 된다!
mvnrepository.com/artifact/com.google.dagger/dagger-lint-aar/2.28.1
Maven Repository: com.google.dagger » dagger-lint-aar » 2.28.1
A fast dependency injector for Android and Java. Note: There is a new version for this artifact com.google.dagger dagger-lint-aar 2.28.1 // https://mvnrepository.com/artifact/com.google.dagger/dagger-lint-aar compile group: 'com.google.dagger', name: 'dagg
mvnrepository.com
버전을 수정 하지 않더라도 node marker 를 사용하여 임시로 해결할 수 있는 방법도 있다.
developer.android.com/studio/build/manifest-merge#node_markers
다중 매니페스트 파일 병합 | Android 개발자 | Android Developers
manifest 병합 및 manifest 병합 도구에 관해 자세히 알아보세요.
developer.android.com
'Programming > Android' 카테고리의 다른 글
안드로이드(모바일) 환경에서의 강제 업데이트 (0) | 2021.08.28 |
---|---|
[Android] 반사효과 이미지 뷰 (0) | 2021.07.18 |
안드로이드 Kotlin Android Extension Deprecated 소식 (0) | 2020.10.21 |
안드로이드 스튜디오 Build Error 발생시 해결 법 (3) | 2020.01.04 |
안드로이드 앱 아키텍처 가이드 (0) | 2019.10.07 |