ios的唯一设备标识
Posted
技术标签:
【中文标题】ios的唯一设备标识【英文标题】:Unique device identification for ios 【发布时间】:2015-05-04 10:03:07 【问题描述】:我有一个 html/JS/CSS 应用程序,我希望使用 phonegap 将其转换为 ios 应用程序。在我的应用程序中,我需要唯一标识每个设备。从 iOS 7 Apple 不接受获取 UDID 的应用程序。我想为最新的 ios4+ 实现这一点。我在https://build.phonegap.com/plugins/1112 看到了一个插件。与此插件相关的另一个问题是,如果我使用依赖于钥匙串的插件,那么风险因素是什么,即在什么情况下会重置或清除钥匙串?
【问题讨论】:
【参考方案1】:这不是常见的方法,但它可能会有所帮助。
您可以使用服务http://get.udid.io 获取设备的真实UDID。
这里是使用示例的 repo https://github.com/vladignatyev/udidio-example
【讨论】:
顺便说一句,UDID.io 现在有用于连接第三方服务的 API。看看github.com/vladignatyev/udidio-example【参考方案2】:很快,我最近的做法是:
var vendorDeviceId = UIDevice.currentDevice().identifierForVendor.UUIDString
这是正确的,UUID 现在对于每个应用安装是唯一的,而不是设备。如果用户重新安装您的应用,他将被分配一个新的唯一标识符(不同于上一个)。
【讨论】:
换句话说,它们对于设备来说不是唯一的,它们只是在您安装/更新/重新安装应用程序时随机生成的:这意味着它是一个完全无用的 ID。【参考方案3】:根据Cordova documentation这里是获取设备UUID的方法
var string = device.uuid;
请注意,对于 iOS,设备的 UUID 与每个应用程序不同。此 UUID 在您的应用程序首次运行时创建,并在您删除并重新安装应用程序时更改。
iOS Quirk
iOS 上的 uuid 使用 identifierForVendor 属性。它对于同一供应商的设备是唯一的,但对于不同的供应商会有所不同,并且如果供应商的所有应用程序都被删除然后重新安装,它就会发生变化。如果应用程序从备份或 iCloud 中恢复,则 UUID 将与保存在首选项中的相同。使用此插件旧版本的用户仍会收到通过其他方式生成的相同的先前 UUID,因为它将从首选项中检索。
【讨论】:
【参考方案4】:您可以将我的标识符用于供应商插件 https://github.com/jcesarmobile/IDFVPlugin
它使用供应商https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor的本机标识符
【讨论】:
以上是关于ios的唯一设备标识的主要内容,如果未能解决你的问题,请参考以下文章