-
안드로이드 Q 버전, IMEI 접근 Deprecated에 대한 마이그레이션 대응기Programming/Android 2020. 4. 3. 01:50
얼마 전 안드로이드 리뉴얼 작업을 마친 후,
데모 버전으로 테스트를 보냈는데
갤럭시 20 유저의 로그인이 되지 않는다는 이슈를 보고받았다.
정확히 확인해보니, 안드로이드 버전 10 (이하 Q 버전)의 유저에게서 로그인 이슈가 발생했다.
에러가 발생하는 부분을 찾아 디버깅을 해보니
로그인 및 회원가입에서 필수적으로 들어가야 하는 IMEI 코드가 null 값으로 들어오는 것이 문제였다.
이에 대한 문제를 더 정확히 파악하기 위해
안드로이드 Q 버전 업데이트 시 변동사항을 안드로이드 도큐먼트에서 확인했다.
getDeviceId()로 IMEI를 가져와서 이슈가 발생했다. 도큐먼트를 확인해보니 문제가 명확해졌다.
기존 앱에서는 회원가입과 로그인시 getDeviceId()를 이용하여 IMEI 코드를 가져왔다.
그러나 앱 내에서는 이 IMEI 코드를 사용하는 부분을 찾을 수 없었고,
웹 백엔드로 넘겨지는 부분만 확인했다.
과연 이 IMEI 코드가 웹 백엔드 단에서 어떤 역할을 하고 있는지 확인하는 것이 가장 중요했다.
당장은 확인할 수가 없어서 일단 안드로이드 단에서 확인할 수 있는 부분들을 최대한 확인해봤다.
1. IMEI 코드가 공백("") 이거나 아예 웹 단으로 파라미터 자체를 넘기지 않는 경우, 로그인 및 회원가입이 불가한가.
- IMEI 코드가 공백으로 들어가는 경우, 에러가 발생하고 아예 파라미터를 넘기지 않는다면 성공적으로 동작한다.
=> 즉, IMEI 코드가 없어도 사용 가능하다
2. IMEI 코드가 로그인 및 회원가입시 PK의 역할을 하는가
- 다른 기기 두 개를 준비하고 하나는 회원가입으로 계정을 생성하고, 다른 하나의 기기로 로그인을 시도했다. 문제 없었다.
=> 즉, IMEI 코드가 유저를 구분하기 위한 PK 역할을 하지 않는다.
확인 내용을 정리해봤을 때, 두 가지의 플랜을 제시할 수 있다.
1. 웹단에서 굳이 IMEI 코드가 필요없다면 과감히 쿼리스트링에서 IMEI 코드를 제거한다.
2. IMEI 코드와 같은 기기 단말의 식별자가 반드시 필요하다면, 다른 식별자를 대체한다.
그러나 이 사항은 안드로이드 개발자인 나혼자 결정할 수 있는 부분이 아니다.
추후 웹 백엔드 측으로부터 이 IMEI 코드의 역할을 정확히 확인해야 추후의 작업방향을 결정할 수 있다.
일단은 어떤 방향으로 흘러가게될지 모르니 이 IMEI 코드를 대체할 수 있는 식별자를 찾아봐야겠다.
안드로이드 Q 기기 고유 식별자(IMEI 등) 제한
개발자를 위한 안드로이드 Q #3 | 시작하기 전에... 본 포스트는 디바이스 ID 관련된 내용을 다루며, 3월 14일 공개된 안드로이드 Q 베타 버전 기준으로 작성되었습니다. 이후, 정식 버전에서는 기능 및 API가 변경될 수 있으며, 기능에 관한 소감이나 의견은 개인적인 의견으로 회사의 공식 의견과는 다를 수 있습니다. TL;DR; 안드로이드 Q 버전부터는 더 이상 '사용자가 재설정할 수
brunch.co.kr
웹 담당자와 미팅 결과, 웹 쪽에서는 특별하게 중요한 작업을 하고 있지는 않고, 자동로그인 관련된 토큰으로서 다시 안드로이드 측으로 넘기고 있다는 답변을 들었다.
즉, 자동로그인 확인을 위한 플래그로 사용 되므로, 굳이 IMEI 코드가 아니여도 상관 없는 대신,
IMEI 코드를 대체할 다른 ID 코드가 꼭 필요했다.
그중에서 나는 SSAID를 사용하기로 했다.
기존에 IMEI 코드를 가져오는 메소드만 다른 메소드로 교체하면 되는 이슈여서
마이그레이션 작업은 그렇게 복잡하지 않아서 다행이었다.
String deviceID = Settings.Secure.getString( getApplicationContext().getContentResolver(), Setting.Secure.ANDROID_ID);
SSAID는 위와 같은 방식으로 가져올 수 있다.
'Programming > Android' 카테고리의 다른 글
기존 MVC 프로젝트, MVVM 패턴으로 리팩토링 해보기 (0) 2022.03.22 [번역] Retrofit과 Coroutine으로 safeApiCalls 만들기 (0) 2022.01.20 [Android] PhoneNumberFormattingTextWatcher 적용 안되는 이유 (0) 2021.10.22 ViewModelProvider Error 발생 (0) 2020.09.13 (TIL Android) RecyclerView에 구분선 지울려다가 RecyclerView 파고들기 (0) 2020.06.30