[iOS] UUID UUIDString 알아보기 (NSUUID, Device Vendor UUID, adUUID)

   UUID 란?

UUID(Universally Unique IDentifier)는 고유의 값으로 구하여 사용하기 위함으로 많이 사용된다.
그 외 만들어 지는 자세한 규칙, 딱딱한 용어는 아래 링크 참조!

링크 참조 : https://ko.wikipedia.org/wiki/범용_고유_식별자


  NSUUID

임의의 128비트 값을 생성하고, 고유의 값을 만드는데 좋다. (항상 값이 다르게 나온다.)

  Device Vendor UUID

공급업체가 같은 앱들은 모두 같은 고유 ID 를 가짐.

  AD UUID

광고 식별자 UUID 존재함.
1. 각 기기마다 고유 ID를 가진다. (앱 삭제여부 관계없이 같은 ID 가짐)
2. 설정에 따라 값이 초기화 됨. (변경가능)
    1) 설정 → 일반 → 재설정 → 모든 → 설정 → 재설정
 
    2) 설정 → 개인 정보 보호 → 광고 → 광고 식별자 재설정


3. 설정에 따라 값을 가지고 올 수 없음
 
    1) 설정 → 개인 정보 보호 → 광고 → 광고 추적 제한

#. App 심사 승인을 위해 IDFA(광고식별자) 사용정보 관련 질문에 답해야함. (Reject 당할 수 있음)

  Sample Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import UIKit
import AdSupport // 광고 정보 가져오기.
//
// UUID 반복 테스트.
for i in 1...3 {
    print("=== \(i)차 UUID ===")
    print("NSUUID : \(NSUUID.init().uuidString)")
    print("VendorUUID : \(UIDevice.current.identifierForVendor?.uuidString ?? "false")")
}
print("========")
// #. 추가적으로 광고식별자 코드도 존재함.
let adUUID = ASIdentifierManager.shared().advertisingIdentifier
print("Ad UUID : \(adUUID)")
//
/** 결과
 Vendor UUID 는 동일함 NSUUID는 항상값이 다르게 나온다.
=== 1차 UUID ===
NSUUID : 8720FD83-B66E-4277-9737-3E977D274D61
VendorUUID : 11CEE207-548C-45E9-AD80-D6C29BB02750
=== 2차 UUID ===
NSUUID : 1F4D3829-60F9-4265-8EE9-24DE30BDCE39
VendorUUID : 11CEE207-548C-45E9-AD80-D6C29BB02750
=== 3차 UUID ===
NSUUID : C917530D-0174-4842-B885-414CBD96AF97
VendorUUID : 11CEE207-548C-45E9-AD80-D6C29BB02750
========
Ad UUID : 637BB6C0-E181-4A57-B43B-A32B9B49A3EF
*/
cs

  마치며

필자의 경우 광고관련을 사용하지 않기때문에 실제 업무에서 사용해 본적은 없으나, 랜덤한 ID값을 만들려고 이번에 정리하여 NSUUID 를 찾아봐서 테스트 해보았다. 기존의 Device UUID는 앱을 지우지 않는한 같은 ID로 알고 있다. 상황에 맞춰서 그때그때 사용하면 좋을 것 같다.

광고 ID는 앱 리젝 가능성이 있으니 조심하자!

댓글

이 블로그의 인기 게시물

[iOS] 앱스토어 등록 전, 후 URL 알아보기

[Xcode] add Simulators (시뮬레이터 추가하기)

[iOS] 앱 아이콘 동적으로 변경하기 (Dynamically Change App icon)

[iOS] Device Name 가져오기 (for Swift) - 2022/09/22 update

[iOS] sizeToFit vs sizeThatFits 알아보기