2

就像你现在一样,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 版本中,一切都很好,并且可以更改“允许应用程序请求跟踪”选项。但是现在它变灰了。

4

1 回答 1

1

这对我有用

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
            }
        }
    }

如果您使用 Appdelegate 从 ApplicationDidBecomeActive 调用它,如果您使用 Scenedelegate 从 SceneDidBecomeActive 调用它

于 2021-10-18T09:47:15.870 回答