3

Advertising Identifier在 IOS14 中,您需要请求许可才能使用,但是 AppStore 上已经可用的应用程序的行为是什么(使用 IOS13 SDK 编译)?

我已将设备更新到 IOS14 Beta 4 并从 AppStore 下载了应用程序。一旦我打开应用程序,它不会自动要求任何跟踪权限,Advertising Identifier而是00000-0000-0000.

这是否意味着我必须提交使用 IOS14 SDK 编译的应用更新并请求跟踪权限,否则Advertising Identifier将无法使用?

4

2 回答 2

6

是的,您需要提交新的应用版本。它不会自动请求跟踪权限,因为它应该通过开发人员实例化。因此,您需要使用AppTrackingTransparency框架并请求用户许可:

if #available(iOS 14, *) {
   ATTrackingManager.requestTrackingAuthorization { _ in
   }
} else {
   // Fallback on earlier versions
}
于 2020-08-19T11:19:24.247 回答
2

您必须 AppTrackingTransparency从 ios 14 开始实施才能显示跟踪权限。从此实现中,您可以收集 IDFA。

在 AppDelegate 中执行此操作

import AppTrackingTransparency

didFinishLaunchingWithOptions launchOptions写一个这样的函数

     if #available(iOS 14, *) {
self.requestIDFAPermission() 
}

然后写这个函数

   func requestIDFAPermission() {
    if #available(iOS 14, *) {
        let semaphore = DispatchSemaphore(value: 0)
        DispatchQueue.main.async {
            ATTrackingManager.requestTrackingAuthorization { (status) in
                if (status == .authorized) {
                    let idfa = ASIdentifierManager.shared().advertisingIdentifier
                    print("IDFA: " + idfa.uuidString)
                } else {
                    print("Failed to get IDFA")
                }
                semaphore.signal()
            }
        }
        semaphore.wait()
    }
}

还有一件事。您应该Privacy - Tracking Usage Description在 Plist 中添加。

于 2021-03-08T09:45:43.383 回答