从iOS 7开始,直接在Apple iOS设备上获取UDID是不可能的。
我知道苹果建议使用UIDevice.currentDevice()。identifier21Vendor?.UUIDString。但每次卸载应用程序后它都会发生变化。
我想将GCM发送给用户,并且每个用户有两到三个ios设备。所以为了唯一地识别设备我想要UDID。
代表。如果用户有两个设备
在我的服务器数据库中,我就像这样存储它
userID->>> abc@xyz.com
GCMID->>> {UDIDForDevice1:GCMTokenForDevice1,UDIDForDevice2:GCMTOkenForDevice2}
答案 0 :(得分:1)
如果您想真正唯一地识别设备,请在钥匙串上存储UUID。见How to preserve identifierForVendor in ios after uninstalling ios app on device?。
对于GCM,您应该使用Instance ID API而不是发明自己的识别格式。
对于原始问题,网站www.easy-udid.com
使用Over-the-Air Profile Delivery and Configuration获取UDID和其他设备信息。
"获取我的UDID"按钮链接到qilin.en.mobileconfig
文件,该文件是Configuration Profile plist文件,其中包含以下内容:
{
"PayloadType":"Profile Service",
"PayloadContent":{
"DeviceAttributes":[
"UDID",
"VERSION",
"PRODUCT",
"SERIAL"
],
"URL":"http://www.easy-udid.com/retrieve.php"
},
...
}
当用户安装配置文件时,手机将在打开提供的URL(http://www.easy-udid.com/retrieve.php
)时发送UDID,版本,产品和序列号。然后,服务器可以将结果显示给用户。