ios - Swift - 应用程序跟踪透明度 - 由于 ‘Allow Apps to Request to Track’ 变灰而没有显示弹出窗口

标签 ios swift ios14 apptrackingtransparency

就像您现在一样,Apple 改变了广告和跟踪方面的移动开发规则。

Apple 准备了新的 Beta 14.5 iOS 版本。在此版本中,跟踪将受到限制。因此,我想在我的应用程序中模拟此选项。

当我将手机更新到 14.5 iOS 版本(Beta)和 Xcode(版本 12.5 beta 3 (12E5244e))时,“允许应用程序请求跟踪”选项显示为灰色,并且无法更改。

因此,在下面的代码片段中,由于上述问题,始终返回 .restricted

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

                // 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")
            }
        }
    } else {
        // Fallback on earlier versions
    }
}

所以,我因为这个问题陷入了困境。您有什么选择/建议吗?

不是:在 iOS 14.2 版本中一切都很好,并且“允许应用程序请求跟踪”选项可以更改。但现在它是灰色的。

最佳答案

这对我有用

func requestIDFA() {
        DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
            if #available(iOS 14, *) {
                
                ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
                    // Tracking authorization completed. Start loading ads here.
                })
            } else {
                // Fallback on earlier versions
            }
        }
    }

IF you are using Appdelegate call it from ApplicationDidBecomeActive and if you are using Scenedelegate call it from SceneDidBecomeActive

关于ios - Swift - 应用程序跟踪透明度 - 由于 ‘Allow Apps to Request to Track’ 变灰而没有显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67034511/

相关文章:

ios - 使用 iPhone 相机镜头测量心率变异性

ios - Swift: "Any"没有名为元素的成员

ios - 如何获取该月的第一天?

cllocationmanager - iOS 14 - 当精确位置权限被拒绝时,如何让 iBeacon 唤醒应用程序?

ios - 什么使临时始终授权临时?

ios - CSS |网格自动列 : min-content | not working in IOS 10. 3.3

iphone - iOS开发中,可以读取 map 流量数据吗?

swift - 命令因信号 : Segmentation fault: 11 when swift 3 migration 而失败

swift - 需要帮助使 iOS 14 Widget 显示来自 REST api 的内容

ios - 不同的 UIViewController 方向取决于用户所在的 View