App Tracking Transparency 弹出窗口不出现

Posted

技术标签:

【中文标题】App Tracking Transparency 弹出窗口不出现【英文标题】:App Tracking Transparency popup do not appear 【发布时间】:2022-01-18 15:11:52 【问题描述】:

我正在尝试在我的应用中实现应用跟踪透明度。我尝试在第一个 ViewController 上执行此操作,但在上传到试飞后应用程序崩溃。

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

我试图通过this post 来解决这个问题。

在调试器中,我总是看到“未确定”。有人可以帮忙吗?

    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")
          
        
      )
    

【问题讨论】:

您应该在 ViewControllers 而不是应用委托中请求权限。 我试了几次,但如果没有按钮或类似的东西,它就不起作用。能否举例说明如何实现? 【参考方案1】:

我找到了方法。

添加你的第一个 ViewController

import AppTrackingTransparency
import AdSupport
import UserNotifications

在viewdidload中添加

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

【讨论】:

以上是关于App Tracking Transparency 弹出窗口不出现的主要内容,如果未能解决你的问题,请参考以下文章

App Tracking Transparency 消息未在某些设备中显示

App Tracking Transparency 隐私复选框和应用商店发布拒绝

iOS15系统App Tracking Transparency提审被拒

为 iOS 14.5 实施 Apple App Tracking Transparency (ATT) 的 React Native Expo

iOS 14.5 App Tracking Transparency for firebase log in react-native app

如何开始使用 App-Tracking?