刚刚看到UIDevice uniqueIdentifier属性在iOS 5中已弃用,在iOS 7及更高版本中不可用.似乎没有替代方法或财产可用或即将出现.
我们的许多现有应用程序都严格依赖此属性来唯一标识特定设备.我们如何处理这个问题呢?
2011 - 2012年文件中的建议是:
特别注意事项
不要使用uniqueIdentifier属性.要创建特定于应用程序的唯一标识符,可以调用该
CFUUIDCreate函数创建一个UUID,并使用NSUserDefaults该类将其写入默认数据库.
但是,如果用户卸载并重新安装应用程序,则此值将不同.
我想以编程方式获取iOS设备的UDID.我使用以下代码来获取iOS设备的UDID.
NSUUID *uuid = [NSUUID UUID];
NSString *uuidString = uuid.UUIDString;
Run Code Online (Sandbox Code Playgroud)
但我得到的输出与我的设备的实际UDID不同.
有没有办法在iPhone上获得应用程序的激活时间?我想将此信息用作唯一标识符,我可以将其用于此目的吗?
我需要获取唯一的设备ID来填充数据库中的唯一用户ID.我使用以下代码来实现.
NSString *strApplicationUUID= [[[UIDevice currentDevice] identifierForVendor] UUIDString];
但是当我重新安装应用程序时,UUID一直在变化.但据我所知,设备ID永远不会改变.为此,我使用下面的代码与第三方SSKeychain保存并检索旧的UDID:
NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@"manab"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:Appname account:@"manab"];
}
Run Code Online (Sandbox Code Playgroud)
现在问题是当该应用程序的版本被更改时,即app v2.0表单app v1.0然后UDID再次更改.所以逻辑很清楚我没有得到唯一的UDID,我只是将UDID作为供应商或应用程序的基础.
如何以编程方式获得它?有没有其他办法,请告诉我正确的方向.
ios ×4
iphone ×2
deprecated ×1
installation ×1
ios6 ×1
ios7 ×1
ipad ×1
objective-c ×1
udid ×1
uidevice ×1
uuid ×1