본문 바로가기

IOS (아이폰)

iOS 14 추적 권한 요청하기 + 인증팝업 미노출 버그?

developer.apple.com/kr/app-store/user-privacy-and-data-use/

 

사용자 개인정보 보호 및 데이터 사용 - App Store - Apple Developer

App Store는 사용자가 전 세계의 재능 있는 개발자들이 만든 앱을 발견할 수 있는 안전하고 신뢰할 수 있는 공간으로 설계되었습니다.

developer.apple.com

iOS 14.5 부터는 (현재 14.4) 사용자를 추적하거나 기기의 광고 식별자에 액세스하라면

"AppTrackingTransparency" 프레임워크를 통해 사용자의 허가를 받아야 합니다.

 

 

Step1.

Info.plist 에 사용자에게 추적 권한이 필요한 이유를 설명한 문구를 넣어줍니다.

<key>NSUserTrackingUsageDescription</key>

<string>개인 맞춤 광고를 위해 필요한 서비스입니다</string>

 

Step2



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        let status = ATTrackingManager.trackingAuthorizationStatus
        print(status.rawValue) // 최초는 .notDetermined 상태
        
        ATTrackingManager.requestTrackingAuthorization { status in
            switch status {
            case .authorized:
                print("성공")
            case .denied:
                print("해당 앱 추적 권한 거부 또는 아이폰 설정->개인정보보호->추적 거부 상태")
            case .notDetermined:
                print("승인 요청을 받기전 상태 값")
            case .restricted:
                print("앱 추적 데이터 사용 권한이 제한된 경우")
            @unknown default:
                print("에러 처리..")
            }
        }
        return true
    }

 

 

위 코드로 앱 실행 시 추적 권한 사용에 대한 팝업이 노출됩니다.

승인 요청은 앱 설치 당 1회만 노출이 됩니다.

 

추적을 허용 또는 거부하면 "설정 -> 개인정보보호 -> 추적" 항목에 앱이 추가 되며 

기존에 허용/거부했던 앱도 재설정이 가능합니다.

 

+ 특정 기기에서 추적 권한 팝업 미노출

동일 코드로 실행했을 때 특정 디바이스에서는 추적 권한 팝업이 미노출되고 있는 증상이 발견되었는데요

제가 가지고 있는 iPhone 12 Pro Max, iPhone XS에서 미노출, 

다른 동료 폰 iPhone11 Pro, iPhone X에서는 노출이 되고 있습니다.

 

팝업이 미노출되는 디바이스에서는 추적 설정이 On으로 되어있음에도

status가 "denied" 로만 엏어지고 있습니다.