ios - 在 64 位 iOS 设备上更改唯一标识符

标签 ios iphone uniqueidentifier uidevice

查看了很多问题,因为有很多问题具有相同的主题,但没有找到相同的问题,所以发布。

问题

希望为 iOS 设备生成唯一标识符,就像用户安装应用程序并重新安装一样生成相同的标识符。

已解决但无法使用 64 位设备

我使用此代码获取 iOS 设备的唯一标识符,它工作正常,但当我在 64 位 iOS 设备 上运行它时,它在每个上都会给出不同的结果安装。请查看是否有人知道可能的解决方案。

- (NSString *)GetUUID {
    @try {
        UIDevice *device = [UIDevice currentDevice];
        return [[device identifierForVendor]UUIDString];
    }
    @catch (NSException *exception) {
        return @"00000-00000-0000-00000";
    }
}

最佳答案

identifierForVendor只要设备上安装了来自同一开发商(供应商)的应用程序,就会保持不变。

因此,如果用户卸载了您的应用程序并且用户设备上没有您使用的其他应用程序,identifierForVendor当用户重新安装您的应用程序时会有所不同。

Apple 已明确表示他们不希望开发人员跟踪设备或按设备安装。因此,您无法再从设备中获取任何唯一标识符。

identifierForVendor 的变化可能与一些重新安装问题有关。我一直在追踪 identifierForVendor并没有看到这个问题。

关于ios - 在 64 位 iOS 设备上更改唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24424350/

相关文章:

objective-c - 如何为附加到 UIImageView 的 CALayer 设置动画?

ios - 删除数组中的 View 和引用

iphone - 使用iPhone的AVPlayer,SeekToTime只会为我重新启动视频

javascript - 在 JavaScript 中创建唯一标识符

ios - 如何设置约束以使 UIImage 的底部位于屏幕高度的 1/5?

ios - 导航 Controller 委托(delegate)方法没有得到调用

ios - 在主线程上调用方法?

iphone - 将特殊符号点(.)插入sqlite?

sql-server - 对多个表进行 UNION 时创建 Unique ID 的建议

sql-server - 在 sql server 08 中如何使用 base 36 跳过 Id 列的粗俗单词?