Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- tableView
- RxCocoa
- ribs
- uitableview
- Protocol
- MVVM
- collectionview
- Human interface guide
- HIG
- 애니메이션
- scrollview
- Observable
- clean architecture
- 스위프트
- Xcode
- combine
- rxswift
- ios
- Refactoring
- 리펙토링
- map
- UITextView
- SWIFT
- uiscrollview
- UICollectionView
- 리팩토링
- Clean Code
- 클린 코드
- swift documentation
- swiftUI
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] DeviceCheck API 사용 방법, 고유한 디바이스 ID (UDID 대체, Device block) 본문
iOS 응용 (swift)
[iOS - swift] DeviceCheck API 사용 방법, 고유한 디바이스 ID (UDID 대체, Device block)
jake-kim 2022. 1. 17. 22:17UDID
- Unique Device ID
- iOS 6+ 부터 개발자는 UDID 획득 불가
- 컴파일 후 실행 파일로 만드는 lingking 단계에서 IP주소를 통해 다시 링킹하는 해킹 방법이 있으므로, 소스코드에서 기기의 UDID접근은 위험한 것이므로, 애플은 DeviceCheck API 를 2017년 WWDC에서 제공
- 디바이스 A에서 사용자가 어뷰징을하여 정지를 먹은 경우, 동일한 디바이스로 다른 계정을 새로 생성해도 정지를 먹도록 하고싶은 경우 사용
DeviceCheck
- 고유한 디바이스 식별을 가능하게 해주는 API

- 애플 클라우드에서 2bit의 저장공간을 제공하여, 디바이스의 상태를 기록할 수 있는 장점 존재
- 앱을 재설치, 아이클라우드 계정 변경, 공장 초기화해도 2비트 값 유지
2bit 사용 예시 - backend에서 받아서 사용)
- 앱을 재설치, 아이클라우드 계정 변경, 공장 초기화해도 2비트 값 유지
DeviceCheck 사용 흐름
- iOS App에서 DeviceCheck 모듈안의 DCDevice.current.generateToken { data, error in ...}로 token data 획득
(해당 token 값은 매번 변경)
DCDevice.current.generateToken { dataData, error in guard let dataData = dataData else { print("token is empty") return } let tokenString = dataData.base64EncodedString() print(tokenString) // AgAAAHXbhcMDrOhwYgRYbuTll...+4V94A== }
- token data를 post로 Backend에 데이터 생성
- backend에서 token data를 apple server에 전달
- apple에서 2bit 응답값과 상태를 방출 -> backend에서 보관 및 처리, iOS App에서 필요하면 상태 전달
(해당 디바이스가 blacklist인지.. 등)

* 참고
'iOS 응용 (swift)' 카테고리의 다른 글
Comments