应用程序跟踪透明度弹出窗口不会出现



我正在尝试在我的应用程序中实现应用程序跟踪透明度。我试着在第一台ViewControllor上这样做,但上传到试飞后,它导致应用程序崩溃。

在这之后,我发现了很多信息,这应该在我这样做的appDelegate中完成。当然,我已经在Info.plist 中设置了NSUserTrackingUsageDescription

我试着通过这篇帖子来弄清楚。

在调试器中,我总是看到";未确定";。有人能帮忙吗?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
requestTrackingPermission()
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}

功能

func requestTrackingPermission() {
if #available(iOS 14, *) {
// ATTrackingManager.requestTrackingAuthorization { status in
ATTrackingManager.requestTrackingAuthorization(completionHandler: { 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")
}
}
)}
}

我发现了如何做到这一点。

添加您的第一个ViewController

import AppTrackingTransparency
import AdSupport
import UserNotifications

加载项视图DidLoad

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { (status) in
print("IDFA STATUS: (status.rawValue)")
}
}
}

不,忘了这一切。我花了很长时间才找到。但你不需要通过拖延来欺骗它。您只需要向xcode显示应用程序处于活动状态。只需复制并粘贴此:

NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: nil) { _ in self.requestIDFA() }

return true

}

func requestIDFA() {
ATTrackingManager.requestTrackingAuthorization { _ in }

最新更新