굿데이 여러분 투데이는 IDFA 에 대해서 포스팅을 해보도록 하게씀니다
일단 IDFA 가 무엇인지 알아보는게 좋겠져?
IDentifier For Advertisers 의 약자로, 광고를 위해서 사용되는 식별자라고 보면 되겠슴니다
앱 심사 제출할때 맨 마지막 단계에서 애플이 시뻘겋게 으름장놓는 그것이죠
iOS 13까지는 이 idfa 를 사용할때는 아래와 같이 처리하면 되었는데여
import AdSupport
let idfa = ASIdentifierManager.shared().advertisingIdentifier
iOS14 부터는 이렇게 하면 0000-00000,... 이렇게 나옵니다
못 긁어온다는 것이죠 까다롭게 말이지 갑자기 바꿔버리고,,,
그럼 이제 어떻게 해야 하는가?
인류는 답을 찾을 것입니다 늘 그랬듯이
바로 AppTrackingTransparency 를 사용하면 되는데여
앱추적투명도...? 이전까지는 불투명하게 추적했던것을 반성하나봅니다
자 그럼 코드를 볼게영
var idfa: UUID {
return ASIdentifierManager.shared().advertisingIdentifier
}
func requestIDFAPermission(completion: @escaping (String)->()) {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { (status) in
switch status {
case .authorized:
print("Authorized")
print("IDFA: ", self.idfa)
completion(self.idfa.uuidString)
case .denied, .notDetermined, .restricted:
print("Not Authorized")
print("IDFA: ", self.idfa)
completion(self.idfa.uuidString)
@unknown default:
print("UNKNOWN")
print("IDFA: ", self.idfa)
completion(self.idfa.uuidString)
}
}
} else {
print("Under 14.0")
print("IDFA: ", self.idfa)
completion(self.idfa.uuidString)
}
}
참 쉽죠? 그냥 14.0 이상일때는 ATTrackingManager 로 권한을 요청하면 됩니다
그런데 음 이렇게 하면 앱이 펑 터지네요,,, 바로바로 권한요청에 대한 설명이 없기 때문인데여 이건 다 아시죠? 카메라 권한이나 위치권한 받아올 때 쓰는 그거랑 똑같은 겁니다
NSUserTrackingUsageDescription 을 Info.plist 에 넣어주고 다시 실행하게 되면?
요렇게 권한 팝업이 뜨고, 추적을 허용하게 되면 기기의 IDFA 가 똭 하고 나오게 됩니다
추적금지를 하게 되면 IDFA 는 기존처럼 0000-0000...이렇게 나오게 되구영
앱 내에서 IDFA 를 사용하시는 분들은 다음 업데이트에 해당 사항을 꼭 넣어주셔야 하니 참고하심 되게씀다
그러면 다음시간에 또 만나여 안녕~~~~~
'Swift 개발 이야기' 카테고리의 다른 글
SwiftUI 로 ImagePicker 호출하기 (0) | 2020.11.20 |
---|---|
inout 에 대해 Araboza.swift (0) | 2020.11.17 |
Image Cache in Swift - 이미지 캐싱 사용해보기 (0) | 2020.10.19 |
Group UITableView Footer 공백 없애는 방법 (0) | 2020.10.06 |
Content Hugging & Compression Resistance Priority in Swift (0) | 2020.09.22 |