我的应用程序因显示 GDPR(Google 的 UMP)和 ATT 使用户感到困惑而被 Apple 拒绝。具体来说,如果用户位于欧洲经济区,GDPR 将首先显示。这时ATT才开始出现。根据苹果公司的要求:“如果用户拒绝一次跟踪权限,请勿要求他们在同一权限请求流程中再次允许跟踪。在用户授予跟踪权限之前,不应有任何跟踪活动”。所以我需要知道用户填写 GDPR 表单的结果,以便我可以决定是否显示 ATT。
而我仍然没有解决办法。
这是我的代码
func setupAdvertisement() {
fatalError("This method must be overridden in the subclass")
}
func requestATTAuthorization() {
if #available(iOS 14.5, *) {
let trackingAuthorizationStatus = ATTrackingManager.trackingAuthorizationStatus
if trackingAuthorizationStatus == .notDetermined {
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
})
}
}
}
func showAdvertisement() {
if #available(iOS 14.5, *) {
let trackingAuthorizationStatus = ATTrackingManager.trackingAuthorizationStatus
if trackingAuthorizationStatus == .notDetermined {
ATTrackingManager.requestTrackingAuthorization(completionHandler: { [weak self] status in
DispatchQueue.main.async {
self?.setupAdvertisement()
}
})
} …Run Code Online (Sandbox Code Playgroud)