iPhone/iPad唯一标识符BESIDES UUID/UDID?

edc*_*ncy 12 iphone objective-c udid ipad ios

我正在进行的项目是从iPhone或iPad请求两个(甚至三个)唯一标识符.我知道,我知道...... UDID应该足够了,但我们正在努力查看是否还有其他可以使用的唯一标识符.

我可以使用IOKit.framework从手机上获取IMEI,序列号,MAC地址等,但显然苹果不赞成使用此框架的任何应用程序将被拒绝.

有没有人有任何其他想法,或我可以使用的标识符?

谢谢!

Leo*_*rey 8

这个问题很老,但是现在添加了一个新的独特的,基于供应商的标识符来替换iOS 6中已弃用的UUID.

[UIDevice identifierForVendor]现在应该代替使用[UIDevice uniqueIdentifier]其现在弃用的iOS 5.0的

用法示例:

NSUUID *uuid = [[UIDevice currentDevice] identifierForVendor];
NSString *uuidString = [uuid UUIDString];
Run Code Online (Sandbox Code Playgroud)


asc*_*oli 3

您可以获得 ICCID 和 IMSI(如果存在)。

NSString *commcenter = @"/private/var/wireless/Library/Preferences/com.apple.commcenter.plist";
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:commcenter];
NSString *ICCID = [dict valueForKey:@"ICCID"];
NSString *IMSI = [dict valueForKey:@"IMSI"];
Run Code Online (Sandbox Code Playgroud)

我想这就是你所能得到的。我不知道还有其他获得通用 ID 的方法。

更新2013-03-13:自从我大约两年前写下这个答案以来,这可能已经改变了。我什至不记得当时的iOS版本是什么。另外,正如 @joshis 在评论中正确指出的那样,“您不能合法地这样做,因为您的应用程序会从应用程序沙箱外部读取内容,因此,它将被拒绝,如 AppStore 审查指南中所指定的......”。