Google Play Services12.0.0 불필요한 권한이 임의로 부여된 문제

3074 단어 Android

먼저


결론적으로 이 문제는 Google Play Services의 오류입니다.버전이 12.0.1로 수정됐기 때문에 12.0.0을 사용하는 사람은 12.0.1을 높이는 것을 권장한다.

날과 씨


Google Play Services 버전을 12.0.0으로 높인 후 릴리즈할 때 Google Play Developer Constore에서 READPHONE_스테이트가 추가됐는데 가능한가요?이런 경고를 보냈습니다.

까닭


나는 전혀 기억하지 못한다.
READ_PHONE_STATE는 Dangerous Permission(targetSdkVersion이 런타임 Permission을 23개 이상 지원하지 않으면 Permission이 요청될 때 떨어진다)이므로 임의로 추가하지 않습니다.

조사하다.


모듈 단계의build을 적용합니다.Google Play Services 의존도를 gradle에 추가합니다.다음은 Google Analytics이며 다른 API도 변경되지 않습니다.

dependencies {
    implementation "com.google.android.gms:play-services-analytics:12.0.0"
}
Andoid Manifest를 열고 아래 탭에서 "Merged Manifest"를 선택하면 Manifest Merger를 통해 병합된 Android Manifest를 확인할 수 있습니다.

READ_PHONE_STATE를 클릭하여 정보를 확인합니다.

Merging Log 의 com 에서 왔습니다.google.android.gms.이게 license에서 온 권한인 거 알아요.원인은 targetsdkVersion이 4가 안 됐기 때문인 것 같습니다.
읽기READ_PHONE_STATE 문서에는 다음과 같은 설명이 있다.
Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.
targetSdkVersion이 4가 안 되면 무단으로 추가됩니다.

해결책


com.google.android.gms.license에 대한 조사를 진행하여 마침내 도착했습니다구글 플레이 서비스의 Release Notes.Version 12.0.0 항목을 확인한 후 이유가 적혀 있습니다.
-license POM dependencies have no minSdkVersion/targetSdkVersion set, which means that the implied targetSdkVersion is 1. This adds READ_PHONE_STATE and READ_EXTERNAL_STORAGE permissions for apps using 12.0.0.
minSdkVersion이 설정되어 있지 않기 때문입니다.또한Version 12.01에서 이 문제를 수정했습니다..
12.0.1 버전 업데이트 및 Merged Manifest 확인 후 READPHONE_STATE、READ_EXTERNAL_알겠습니다. STORAGE가 삭제되었습니다.

총결산


플레이콘스토어에서 경고가 왔어요. 대단해요.살았다.

참고 자료


https://developer.android.com/studio/build/manifest-merge.html#_9

좋은 웹페이지 즐겨찾기