ARCHIVES

태그

신고하기

상단 메뉴 페이지

기본 콘텐츠로 건너뛰기

[iOS] iOS 식별자(identifier) 이야기

안녕하세요. 치우 입니다.

이번에 진행중 프로젝트에 식별자 문제로 이슈가 되어
식별자를 정리해 보았습니다.

1. 식별자의 종류

UDID (Unique Device Identifier)(디바이스 식별자)

    - 각 기기마다 가지는 고유 ID
    - 사용불가

IDFA (IDentifier For Advertisers)(광고 식별자)

- 각 기기마다 가지는 고유한 ID를 가짐
- 앱의 삭제 여부와 관계없이 같은 ID를 가짐
- 설정에 따라 값이 초기화 됨(변경)
    1) 설정 → 일반 → 재설정 → 모든 → 설정 → 재설정
    2) 설정 → 개인 정보 보호 → 광고 → 광고 식별자 재설정
- 설정에 따라 값을 가지고 올 수 없음
    1) 설정 → 개인 정보 보호 → 광고 → 광고 추적 제한
- 앱스토어 등록시 앱추적 경고 등록 필요.
    1) App 심사 승인을 위해 IDFA(광고식별자) 사용 정보 관련 질문에 답해야 함(Reject 당할 수 있음)

코드
ASIdentifierManager.shared().advertisingIdentifier.uuidString

UUID (Universally unique identifier)(벤더 식별자)

- 앱이 달라도 Organization Identifier 가 같은 앱이면 identifierForVender가 같습니다.

- 앱을 삭제할 경우

    1) 같은 벤더의 다른 앱이 설치되어 있는 경우 ID가 유지됨.
    2) 같은 벤더의 다른 앱이 없을 경우 ID는 초기화 됨.

- nil 출력 시 기다렸다가 다시 호출해야 함(기기 재시작 후 잠금을 풀기 전에 발생할 수 있음, 위젯 사용시 주의점.)


코드 
UIDevice.current.identifierForVendor?.uuidString


NSUUID: 임의의 128 비트 값을 생성

코드
NSUUID().uuidString


2. 식별자의 근황

2021.07.14 현재 iOS버전은 14.6

UDID : iOS5에서부터 deprecated 되었습니다. 사용불가

IDFA : iOS14.5 부터 필수권한으로 바뀌어 사실상 사용하기 힘들어 졌습니다,
           사용자의 대부분이 거부로 할 것으로 예상됨.


3. 결론


영구적으로 사용할 수 있는 고유 식별자는 없다.

1) keyChain 및 NSUserDefaults와 같은 내부 저장소 사용

2) 벤더식별자 또는 자체 생성으로 유연하게 사용


댓글