header-img
Info :

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

  • AppTrackingTransparency.framework (์• ํ”Œ ๊ธฐ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ)
  • AdSupport.framework (์• ํ”Œ ๊ธฐ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ)

2. ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถ”๊ฐ€ 

info.plist

info.plist์—์„œ tracking usage description ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์•ฑ ํŠธ๋ž˜ํ‚น์„ ๋ฐ›์•„์˜ค๋ฉด์„œ ์•ˆ๋‚ดํ•  ์•ˆ๋‚ด ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•ด์คŒ.

3. ์ฝ”๋“œ์—์„œ ์ž‘์„ฑ

iOS 14.5 ๋ฏธ๋งŒ์—์„œ๋Š” ์œ ์ €์˜ ๋™์˜ ์—†์ด IDFA๋ฅผ ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์žˆ์Œ. 14.5 ์ด์ƒ๋ถ€ํ„ฐ๋Š” isAdvertisingTrackingEnabled ์ž์ฒด๊ฐ€ deprecated ๋˜์–ด์„œ ATTrackingManager๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IDFA๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•„์•ผ ํ•จ. ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ ๋ฐ›๊ฒŒ ํ•˜๋ ค๋ฉด SceneDelegate์—์„œ ํ•ด์ฃผ์–ด์•ผ ํ•จ. \

 

func sceneDidBecomeActive(_ scene: UIScene) {
    // Called when the scene has moved from an inactive state to an active state.
    // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
        self.requestPermission()
    }
}


// MARK: - permission
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 Tracking Permission")

                    // Now that we are authorized we can get the IDFA
                    case.denied:
                        // Tracking authorization dialog was
                        // shown and permission is denied
                        print("Denied Tracking Permission")
                    case.notDetermined:
                        // Tracking authorization dialog has not been shown
                        print("Not Determined Tracking Permission")
                    case.restricted:
                        print("Restricted Tracking Permission")
                    @unknown
                    default:
                    print("Unknown Tracking Permission")
                }
        }
    } else {
        let manager = ASIdentifierManager.shared()
        guard manager.isAdvertisingTrackingEnabled
        else {
            return
        }
        print("ATT iOS 14.5 under")
        print("์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ผ๋ฉด 000 ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋จ")

        print(manager.advertisingIdentifier)

    }
}
๋”๋ณด๊ธฐ
CS/iOS, Swift