728x90
반응형
아이폰 앱 서비스 하면서 사용자가 사용하는 아이폰의 기기를 식별해야할 일이 생길 수 있다. 아이폰마다 불변하는 특정 아이디, 식별자가 있어서 이 식별자를 수집하면 되지 않을까 하는 생각을 할 수 있다. 하지만 이런 사용자의 정보를 함부로 수집할 수 있도록 해준다면 우리의 애플이 아닐 것이다.
다만 애플은 우회적으로, 제한적으로 방법을 제공하고 있다.
바로 Vendor ID를 제공하는 것이다.
https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor
우선 애플이 이야기하는 Vendor ID가 무엇인지 볼 필요가 있다.
애플은 Vendor ID를 다음과 같이 설명하고 있다.
- 동일한 장치에서 실행되는, 동일한 공급업체의 앱에 동일한 값을 가진다.(다른 공급업체는 다른 값을 가진다)
- App Store에서 제공되는 데이터에 따라 결정됨.(엔터프라이즈 앱이나 개발중인 앱은 번들 ID로 결정됨)
즉, A라는 회사가 만든 앱들은 특정 아이폰에서 동일한 Vendor ID를 반환한다는 뜻이다. 그리고 다른 아이폰에서는 이 값이 다르게 나타난다.
위 그림과 같이 아이폰1에서 A사 앱의 Vendor ID가 AAAA-AAAA-AAAA이지만 아이폰2에서는 CCCC-CCCC-CCCC이다. 이러한 특징때문에 앱을 서비스하는 회사는 기기를 Vendor ID로 어느정도 특정 지을 수 있는 것이다.
하지만 이 iOS Vendor ID는 다음 조건에서 바뀔 수 있다.
- 특정 공급사의 앱들이 아이폰에서 모두 삭제되고 그 중 하나 이상을 다시 재설치 되었을 때, Vendor ID는 변경됨.
즉 A사의 앱1, 2, 3이 설치 되어있었는데 1,2,3을 모두 삭제하고 1만 다시 설치한 경우 다른 vendor ID를 갖게된다는 뜻이다.
때문에 Vendor ID는 항상 고정적이지 않으며 변경될 수 있음에 유의해야한다.
iPhone 에서 Vendor ID를 가져오는 예제 (Swift)
guard let vendorID = UIDevice().identifierForVendor else { return }
print("vendorID \(vendorID.uuidString)")
728x90
반응형
'개발 > iOS' 카테고리의 다른 글
iOS/macOS 번들(Bundle)에 대하여 - Part 1 (0) | 2022.10.11 |
---|---|
iOS에서 카메라 필터를 만드는 법 조사 (LUT Lookup Image) (1) | 2022.10.10 |
Swift 프로그램 종료하기 exit(0) (0) | 2022.07.09 |
Swift 삽입정렬, 선택정렬, 퀵 정렬 (0) | 2022.07.03 |
iOS UIKit 튜토리얼 - Frame vs Bounds (0) | 2021.04.20 |
댓글