我正在开发一个使用device unique identifier to register device with server
的应用程序。
我使用MacAddress
来获取设备的唯一标识符,但在iOS7中它将返回相同的内容(所有设备都是静态的)。
我发现其他替代
NSUUID *vendorId = [[UIDevice currentDevice] identifierForVendor];
但随着iOS设备的改变,这将会改变。
所以任何人都可以建议我some unique identifier which will not change
如果iOS版本更改它应该对所有iOS版本(iOS7,iOS6)都相同。
答案 0 :(得分:2)
有一个简单的答案:这是不可能的。在这里,您可以对标识符进行概述:The Developer’s Guide to Unique Identifiers
答案 1 :(得分:0)
只需将UUID存储到钥匙串中即可。 sskeychain是指https://github.com/samsoffes/sskeychain
代码如下^^
NSString *identifier = [SSKeychain passwordForService:kSSToolkitTestsServiceName account:kSSToolkitTestsAccountName];
if (identifier != nil && [identifier length] > 0) {
return identifier;
}
identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:identifier forService:kSSToolkitTestsServiceName account:kSSToolkitTestsAccountName];
return identifier;
答案 2 :(得分:0)
不幸的是,Apple不允许应用程序以唯一方式识别设备(因为它违反了用户隐私)。所以你要么留下了供应商ID或广告ID ..你可以尝试的另一件事是写一个提供的Web服务首次登录时您的应用程序的唯一ID,您将把它存储在设备的密钥链或数据库中..
答案 3 :(得分:0)
Apple不允许使用Device's UDID
来识别用户。所以你可以用其他方式来做。
不是将UDID发送到服务器,而是在服务器上创建唯一的ID,并将该ID放在应用程序中以识别用户。通过这种方式,您不会违反Apple的指导原则,并且可以通过此解决iOS版本变化的问题。