在IOS14中,为了使用Advertising Identifier,你需要申请许可,但是已经在AppStore上可用的应用程序(用IOS13 SDK编译)会有什么行为呢?
我已经将设备更新到IOS14 Beta4,并从AppStore下载了应用程序。一旦我打开应用程序,它不会自动要求任何跟踪权限,而Advertising Identifier是00000-0000-0000。
这是否意味着我必须提交使用IOS14 SDK编译的应用程序更新并请求跟踪权限,否则Advertising Identifier将不可用?
发布于 2020-08-19 19:19:24
是的,您需要提交一个新的应用程序版本。它不会自动请求跟踪权限,因为它应该通过developer实例化。因此,您需要使用AppTrackingTransparency框架,并请求用户权限:
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { _ in
}
} else {
// Fallback on earlier versions
}发布于 2021-03-08 17:45:43
您必须在iOS14中实现AppTrackingTransparency才能显示跟踪权限。从这个实现中,您可以收集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()
}
}还有一件事。您应该在Plist中添加Privacy - Tracking Usage Description。

https://stackoverflow.com/questions/63464625
复制相似问题