ios - 以编程方式获取 iOS 设备的 IMEI 或 UDID

标签 ios iphone swift

1.) Apple 是否允许开发者检索用户设备的 IMEI 号码和 UDID?

2.) 如何以编程方式获取这些值?

3.) 如果 Apple 不允许开发者收集 IMEI 号码,他们是否为设备提供任何其他唯一号码?

最佳答案

Apple 不再允许开发者以编程方式获取 UUID。但是,您可以使用一些解决方法来唯一标识应用程序中的设备。下面的代码允许您使用 CFUUIDCreate 创建唯一标识符。

objective-C :

- (NSString*)GUIDString {
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}

swift :

func GUIDString() -> NSString {
    let newUniqueID = CFUUIDCreate(kCFAllocatorDefault)
    let newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    let guid = newUniqueIDString as! NSString

    return guid.lowercaseString
}

获得此唯一标识符后,您可以将其存储在 NSUserDefaults、核心数据中,将其发送到 Web 服务等,以将此唯一 ID 与运行应用程序的设备关联起来。您还可以将其用作 NSString 上的类方法,如 here 所示。 .

关于ios - 以编程方式获取 iOS 设备的 IMEI 或 UDID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31075049/

相关文章:

ios - 从嵌入式 TableViewController 传递数据

ios - 如何创建 .ipa 文件以便用户可以像 AppStore 一样下载和安装?

iphone - 为什么这段代码运行缓慢?

iphone - UITableView 的 didSelectRowAtIndexPath 仅每隔一段时间调用一次

swift - 我如何转换为像 : MyType<ConformingX> (ConformingX is a class that conforms to a protocol) 这样的通用类型

ios - UILabel 中的文本垂直放置在中间而不是从顶部 - 我如何在 Swift 中更改它?

ios - 单击按钮时如何打开手机设置?

ios - 是否使用 Core Data?

ios - 从挂载 map 的数组中检索信息 (MapKit)

swift - 你能让一个类的所有对象通过一个方法调用做同样的事情吗?