ios 14 부터 개인정보 수집에 개인정보 '추적'을 선택할 경우 앱 추적 권한 알림을 필수로 구현해야 합니다. (앱 추적 권한 알림 뜨지 않으면 앱스토에서 리젝됨)
다음과 같은 앱 추적 권한 알림을 띄워서 사용자 동의를 받아야 합니다.
iOS 14.5, iPadOS 14.5 및 tvOS 14.5 버전에서는 앱이 다른 회사의 앱 및 웹 사이트에서 사용자의 활동을 추적하려면 반드시 추적 권한을 요청해야 합니다. 앱에서 사용자 또는 사용자의 기기를 식별할 수 있는 정보를 수집하고, 해당 수집된 정보를 타깃 광고나 광고 측정의 목적으로 타사가 소유한 앱, 웹 사이트 및 기타 위치에서 수집된 사용자 또는 사용자의 기기를 식별할 수 있는 정보와 연결하거나 수집된 정보를 데이터 브로커와 공유할 경우 추적이 발생합니다.
'앱에 추적 금지 요청'을 선택할 경우 해당 앱의 개발자는 개인 정보 추적에 종종 활용되는 IDFA(시스템 광고 식별자)에 접근할 수 없습니다. 또한 앱에서 사용자 또는 사용자의 기기를 식별하는 이메일 주소 같은 기타 정보를 사용하여 사용자의 활동을 추적하는 것도 허용되지 않습니다.
xcode에서 아래와 같이 수정 해야합니다.
App Transport Security Setting 추가해 주시고, 햐단에 Allow Arbitrary Loads, Allow Arbitrary Loads in Web Content에 'YES' 값 설정해줍니다.
viewController.swift에 해당 코드를 작성해주세요
import AppTrackingTransparency
import AdSupport
// 앱 추적 권한 알림 띄우기
func requestPermission() {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Tracking authorization dialog was shown
// and we are authorized
print("Authorized")
// Now that we are authorized we can get the IDFA
print(ASIdentifierManager.shared().advertisingIdentifier)
case .denied:
// Tracking authorization dialog was
// shown and permission is denied
print("Denied")
case .notDetermined:
// Tracking authorization dialog has not been shown
print("Not Determined")
case .restricted:
print("Restricted")
@unknown default:
print("Unknown")
}
}
}
}
Status: Authorized
ASIdentifierManager로 IDFA(시스템 광고 식별자)를 가져올 수 있습니다.
Status: Denied
사용자를 설정(settings) 페이지로 보냅니다.
Status: Not Determined
사용자가 아직 권한을 설정하지 않았다면, 권한 알림을 보여줍니다.
앱 실행시 앱 추적 권한 알림을 띄워주기 위해 위에 적은 함수를 호출해줍니다.
class ViewController: ... {
// 기존코드 .....
// app tracking transparency alert 호출
requestPermission()
}