모 회사로부터 긴급하게 해결 좀 해달라는 요청을 받았다. 구글 플레이에 앱을 심사 올렸는데, 이와 같은 이메일이 날라왔다는 것이다.
Your app(s) are using an unsafe implementation of the HostnameVerifier interface.
You can find more information about how resolve the issue in this Google Help Center article.
메일의 의미는 구글 플레이 콘솔에 등록한 versionCode 100, 101의 apk가 HostnameVerifier 이슈가 있기 때문에 이를 2021년 8월 31일까지 해결하라. 그렇지 않으면 구글 플레이에서 앱을 삭제할 것이라는 경고 메시지이다.
※ 원인
HostnameVerifier 이슈의 정확한 원인은 HttpsURLConnection의 verify() 함수를 잘 못 사용한 것이 원인이다. 아래와 같은 코드가 있다면 무조건 HostnameVerifier를 해결 하라는 이메일을 받을 것이다.
문제의 코드
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
※ 해결 방법
모든 host를 허용하겠다는 return true; 가 문제이다. verify() 함수를 아예 지우거나, verify() 함수 내부의 코드를 아래처럼 허용 해야 할 host만 true, 그 외에는 false를 리턴하도록 수정한다.
@Override
public boolean verify(String hostname, SSLSession session) {
if (hostname.equalsIgnoreCase("your.host.com") ||
hostname.equalsIgnoreCase("your1.host.com") ||
hostname.equalsIgnoreCase("your2.host.com")
) {
return true;
} else {
return false;
}
}
참고로 내 코드에는 이런 코드가 없는데(?) 라고 생각했다면, 사용하고 있는 서드파티 라이브러리안에 문제가 되는 코드가 있을 것이다. 해당 라이브러리의 버전을 업데이트 하거나 다른 라이브러리로 대체하여 이 문제를 해결하면 된다.
마지막으로, 구글 플레이 콘솔에 알파, 베타, 프로덕션에 문제가 되는 apk나 aab가 등록되어 있으면 문제를 해결하라는 이메일이 계속 날라 올 것이다. 그러므로 이 문제를 해결했다면 해결된 apk 또는 aab를 알파 > 베타 > 프로덕션 이렇게 한 스텝씩 올려서 배포하여 더이상 이 문제에 대한 경고 이메일이 날라오지 않도록 해야한다.
'프로그래밍 > android' 카테고리의 다른 글
[android] Dp to Px, Px to Dp (0) | 2021.06.30 |
---|---|
[kotlin] android EditText setMaxLength Programmatically (0) | 2021.06.30 |
[android] imeOptions actionDone 또는 actionSend multiline 적용하기 (IME_ACTION_DONE, IME_ACTION_SEND) (0) | 2021.06.23 |
[android] 방해금지모드 확인 (Do not disturb mode) (0) | 2021.06.15 |
[kotlin] android spinner setOnItemSelectedListener (0) | 2021.06.14 |