有啥方法可以在不使用 IDFA 的情况下为设备生成唯一 ID? [复制]

Posted

技术标签:

【中文标题】有啥方法可以在不使用 IDFA 的情况下为设备生成唯一 ID? [复制]【英文标题】:Is there any way to generate an unique ID for device without using IDFA? [duplicate]有什么方法可以在不使用 IDFA 的情况下为设备生成唯一 ID? [复制] 【发布时间】:2018-09-11 06:51:28 【问题描述】:

我必须为每个设备生成一个唯一 ID。现在,我用这种方式获取设备的唯一 ID:

let uniqueStr = UIDevice.current.identifierForVendor?.uuidString

但是在App Store Submission中,出现了这个错误:

您的应用正在使用广告标识符 (IDFA)。你必须要么 提供有关 IDFA 使用的详细信息或将其从应用程序中删除,并且 再次提交您的二进制文件。

我的应用与广告完全无关。有没有办法在不出现此 IDFA 错误的情况下获得唯一 ID?

【问题讨论】:

您是否在应用中添加了AdSupport.framework 如果用户卸载应用程序然后将其重新安装到他的设备上,您是否希望 ID 相同? 您确定是UIDevice.current.identifierForVendor?.uuidString 导致了问题吗?你收到苹果的任何消息了吗?顺便说一句,您也可以将 IDFA 选中为 yes,取消选中 Serve advertisements within the app 选项。这意味着您有IDFA但没有展示广告,可能是由于您使用了一些第三方库而启用了IDFA?更多详情segment.com/docs/sources/mobile/ios/quickstart/… @AnkitJayaswal 不,我没有添加 AdSupport 框架。 @Aris 是的,一定是一样的。 【参考方案1】:

当使用 Advertising Identifier (IDFA) 而不是 identifierForVendor 时,Apple 似乎会抛出此错误。

可能有一些 3rd 方库正在使用它。您可以从下面的 *** 答案中检查使用 IDFA 是什么或哪个框架的实际原因:

How do I check where my app is using IDFA

那么,

    相应地更新您的库或

    您可以在提交应用时选择使用 IDFA 选项。

【讨论】:

如果您认为该问题是重复的,请将其标记为重复。无需添加仅引用重复项的答案。

以上是关于有啥方法可以在不使用 IDFA 的情况下为设备生成唯一 ID? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不放弃主线程的情况下为 Python 使用 CoreBluetooth

是否可以在不循环的情况下为 iSeries 表中的每一行生成唯一的数值?

如何在不预先知道设备屏幕尺寸的情况下为响应式应用程序执行 s-s-r?

有没有一种方法可以在不使用大量分支语句的情况下为无符号整数编写 qsort 比较函数?

如何在不为 iphone 和 ipad 创建单独的 xib 的情况下为所有 ipad 和 iphone 创建通用 xib?不是故事板

在不配对的情况下为 iOS 附加广告负载