해당 모듈 'AppTrackingTransparency'오류 없음

Aug 21 2020

Apple이 iOS 14 출시와 함께 iOS 앱을 변경해야하는 새로운 투명성 프레임 워크를 발표함에 따라 Google AdMob 계정을 업데이트하려고합니다. Google AdMob 포드를 최신 버전 (7.64.0)으로 업데이트했습니다. 그러나 App Delegate에서 다음 코드를 사용하려고 할 때 :-

import AppTrackingTransparency
import AdSupport
...
func requestIDFA() {
    ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
    // Tracking authorization completed. Start loading ads here.
    // loadAd()
    })
}

다음과 같은 오류가 발생합니다.

No such module 'AppTrackingTransparency'

어떤 도움이라도 대단히 감사하겠습니다 !! 🙏

답변

12 AhmedSafadi Aug 21 2020 at 16:15

베타 버전을 포함하여 Xcode 12부터 만 사용할 수 있습니다.

그리고 그것을 사용

import AppTrackingTransparency
import AdSupport

if #available(iOS 14, *) {
   ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
  // Load ads here 
   })
} else {
  // Load ads here 
}

RewardedVideoAdsManager의 예

class RewardedVideoAdsManager: GADRewardedAd {


static let shared = RewardedVideoAdsManager()

var rewardedAd: GADRewardedAd?

func createAndLoadRewardedAd(unitId: String) -> GADRewardedAd? {
    rewardedAd = GADRewardedAd(adUnitID: unitId)
    let myRequest = GADRequest()
    rewardedAd?.load(myRequest) { error in
        if let error = error {
            print("Loading failed: \(error)")
        } else {
            print("Loading Succeeded")
        }
    }
    return rewardedAd
}

}

그리고 내 AppDelegate 또는 First 메인 화면에서

    if #available(iOS 14, *) {
        ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
            RewardedVideoAdsManager.shared.rewardedAd = RewardedVideoAdsManager.shared.createAndLoadRewardedAd(unitId: "ca-app-pub-8175294120313121/4011630802")
        })
    } else {
        RewardedVideoAdsManager.shared.rewardedAd = RewardedVideoAdsManager.shared.createAndLoadRewardedAd(unitId: "ca-app-pub-8175294120313121/4011630802")
    }