Alternative to iPhone device ID (UDID)
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
UIDevice uniqueIdentifier Deprecated - What To Do Now?
即使苹果没有参加过Barcelone的移动世界大会(MobileWorldCongress),但有一点是肯定的,即获取deviceid将在未来的iOSSDK中被否决。
我不明白苹果为什么要限制这一点,但这不是问题所在。
我必须将我的应用程序准备到另一个选项中,因为我的用户可以更好地使用我的应用程序(例如,不需要登录或创建帐户)。我敢肯定在这种情况下,我并不孤单。
所以有人知道从设备ID中得到另一个选择吗?例如,是否有其他唯一标识符,如MAC地址?你如何准备你的应用程序?
更新
使用cfuuid生成uuid怎么样?您可以在第一次发布时将其存储在keychain中。你可以这样得到它…
1 2 3 4 5 6 7 | NSString *uuid = nil; CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); if (theUUID) { uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); [uuid autorelease]; CFRelease(theUUID); } |
另外,通过取消uniqueidentifier方法,苹果建议您不要为每个设备标识,而是为每个应用安装标识。也许明天他们会决定拒绝你的应用程序。:希望这有帮助。
请实现新的逻辑以获得安全的UDID。它由第三方提供
了解免费解决方案:
这真的很好用,而且很容易实现,而不必为替换不推荐使用的方法而大惊小怪。
试试这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | - (NSString *)getDeviceID { NSString *uuid = [self gettingString:@"uniqueAppId"]; if(uuid==nil || [uuid isEqualToString:@""]) { CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); if (theUUID) { uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); [self savingString:@"uniqueAppId" data:uuid]; [uuid autorelease]; CFRelease(theUUID); } } return uuid; // this is depreciated // UIDevice *device = [UIDevice currentDevice]; // return [device uniqueIdentifier]; } |