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
github.com/google/dagger/commit/85f285c24023ae0f20efc4dc1eb0dddb99c1c81a
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
버전을 수정 하지 않더라도 node marker 를 사용하여 임시로 해결할 수 있는 방법도 있다.
developer.android.com/studio/build/manifest-merge#node_markers
'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 |