如何安全地使用iOS advertisingIdentifier?

问题描述 投票:-1回答:1

Apple's documentation说:

在执行任何广告跟踪之前,请检查此媒体资源的价值。如果值为false,请仅将广告标识符用于以下目的:频次上限,归因,转化事件,估算唯一身份用户数,广告欺诈检测和调试。

因此,基于此,下面的代码应该安全地工作并遵循Apple的文档:

var advertisingID: String? {
    if ASIdentifierManager.shared().isAdvertisingTrackingEnabled == true {
        return nil
    } else {
        return ASIdentifierManager.shared().advertisingIdentifier.uuidString
    }
}

基本上检查它是否是假的,然后,如果是这样的话。当然,代码可以简化,但我想尽可能地解决这个问题。

根据Apple的文档,该代码对我来说似乎是正确的。

话虽如此,它确实不适合该属性的名称,也不适合GitHub上的开源项目。

下面是一些开源项目,其链接以不同的方式执行。

DeviceInfo

return ASIdentifierManager.shared().isAdvertisingTrackingEnabled ? ASIdentifierManager.shared().advertisingIdentifier.uuidString : ""

drifter

// Check whether advertising tracking is enabled
guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else {
    return nil
}
// Get and return IDFA
return ASIdentifierManager.shared().advertisingIdentifier.uuidString

正如你所看到的,如果它是false而不是返回那个值,如果advertisingIdentifierisAdvertisingTrackingEnabled,这些解决方案将返回true。这不是Apple的文档所述。但鉴于属性名称,它确实有意义。


所以我的问题是,哪个是正确的? Apple的文档错了吗?或者这些开源项目是否做错了?或者我只是遗漏了一些明显的东西,这些开源项目和Apple的文档都是正确的吗?

ios cocoa-touch
1个回答
-1
投票

如果值为false,则可以执行所有操作。但是,只有在值为true时,才应该使用广告定位的常用用法。因此,图书馆的方法是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.