Poo*_* K. 8 objective-c udid ipad ios
我想知道如何使用Objective-c为iPhone/iPad生成设备的唯一ID
因此,一旦应用程序安装在设备上,我们就应该跟踪该deviceID
我已经搜索过检索iPhone/iPad的IMEI,但是在objective-c中不允许这样做.
然后我搜索生成iPhone/iPad的UDID,但每次我在模拟器上启动它时都会生成不同的ID.
bad*_*esh 17
是的,不推荐使用UDID ; 由于用户隐私目的,我们不允许获取UDID.Apple不允许获取唯一标识设备的标识符,例如IMEI,MAC地址,UDID等.
UUID是目前最好的方式.但这对每个供应商来说都是独一无二的.每次获得UUID字符串时,您都不确定它是唯一的.最好的办法是将UUID字符串存储到手机的Keychain中,并在需要时使用catch来检索它.当您出厂重置手机时,钥匙串项目将被删除.应该牢记这个限制.
更新 - 在IOS 10.3 BETA':
似乎Apple对Keychain在iOS 10.3+中的工作方式做了一些改变.当卸载特定供应商的所有应用程序时,将删除存储在钥匙串中的钥匙串项目.根据Apple的说法,即使应用程序从设备中消失,应用程序的敏感信息的驻留可能会导致安全风险,因此他们决定禁止这种行为.
即使在卸载应用程序后依赖Keychain存储的开发人员也可以使用此替代方法继续执行预期的功能.根据此解决方法,任何应用程序都可以访问存储在该特定Keychain访问组中的信息,因此建议为数据添加额外的加密层将以更高的安全性保护它,尽管默认情况下keychain会加密项目.
更新 - IOS 10.3.3(稳定):
似乎在iOS 10.3.3的早期测试中,钥匙串项删除是一个BUG,并在稳定版本的后期修复.这可能是在测试期间引起的,因为在该阶段可能会发生奇怪的事情.以后使用钥匙串应该没问题.
您可以使用UUID(通用用户标识).以下链接包含Apple文档
https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor
您可以将此代码用于UUID:
// Objective-C的
NSString * string = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
Run Code Online (Sandbox Code Playgroud)
//迅速
let deviceID = UIDevice.currentDevice().identifierForVendor?.UUIDString
Run Code Online (Sandbox Code Playgroud)
//斯威夫特3
let deviceID = UIDevice.current.identifierForVendor?.uuidString
Run Code Online (Sandbox Code Playgroud)
使用以下代码获取iOS设备的UDID使用KeychainItemWrapper从URL KeychainItemWrap下载类
NSString *uuid;
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"AC_APP_UUID" accessGroup:nil];
NSString *keychainUUID = [keychain objectForKey:(__bridge id)(kSecAttrAccount)];
NSString *appVersion = [NSString stringWithFormat:@"%@",@"1.0"];
[keychain setObject:appVersion forKey:(__bridge id)(kSecAttrDescription)];
if (keychainUUID==nil||[keychainUUID isKindOfClass:[NSNull class]]||keychainUUID.length==0) {
uuid = [[NSUUID UUID] UUIDString];
[keychain setObject:uuid forKey:(__bridge id)(kSecAttrAccount)];
}else{
uuid = [keychain objectForKey:(__bridge id)(kSecAttrAccount)];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25438 次 |
| 最近记录: |