自5月1日起,由于不允许使用UDID,会发生什么?

8

大家好,从2013年5月1日开始,使用UDID的读取应用将不被接受。我们需要使用iOS 6的identifierForVendor来获取唯一标识符。但是,如果我们能将最低部署目标设置为4.3吗?如果设备仍在运行iOS 4.3或5.0,我们如何处理UDID,因为identifierForVendor仅适用于iOS 6?这是否意味着我们要使用MAC地址的哈希值作为唯一标识符?那样会支持所有iOS版本吗?


http://www.engadget.com/2013/03/21/apple-sets-a-may-1st-cutoff-for-app-submissions-that-use-udid/ - veereev
苹果源码 https://developer.apple.com/news/index.php?id=3212013a#top - Vin
@Vin 这并没有帮助,替代方法都是在iOS 6中引入的,更糟糕的是:参考GKTank应用程序使用[[UIDevice currentDevice] uniqueIdentifier](请参见TankViewController.m)。实际上,它使用iphoneos3.0作为基本SDK。我记不起苹果公司曾经如此不合理过。 - A-Live
请查看 https://devforums.apple.com/message/796160#796160 开始讨论该问题(需要苹果开发者授权)。 - A-Live
大家好,感谢你们的评论:)我在思考,为了唯一地识别设备(例如用于APNS),我们可以使用某个哈希值来替代使用UDID。我一直在使用这个链接中的方法来实现:https://dev59.com/WWw05IYBdhLWcg3w11W0#7946812 - veereev
1个回答

2

您可以使用CFUUID生成一个UUID。然后在第一次启动时将其存储在KEYCHAIN中。您可以像这样获取它...

NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) 
{
 uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); 
 [uuid autorelease];
CFRelease(theUUID);
}

您可以使用此ID来识别应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接