刚刚看到UIDevice uniqueIdentifier属性在iOS 5中已弃用,在iOS 7及更高版本中不可用.似乎没有替代方法或财产可用或即将出现.
我们的许多现有应用程序都严格依赖此属性来唯一标识特定设备.我们如何处理这个问题呢?
2011 - 2012年文件中的建议是:
特别注意事项
不要使用uniqueIdentifier属性.要创建特定于应用程序的唯一标识符,可以调用该
CFUUIDCreate函数创建一个UUID,并使用NSUserDefaults该类将其写入默认数据库.
但是,如果用户卸载并重新安装应用程序,则此值将不同.
Apple正在更改其iOS6的隐私设置并弃用设备UUID(UDID).根据WWDC演示文稿和文档,UDID有两个替代品,在UIDevice课堂上:
-identifierForVendor-identifierForAdvertising在我看来,-identifierForVendor它不如-identifierForAdvertising因为它会在上次从供应商卸载应用程序时重置并"擦除所有内容和设置".
没有什么优势-identifierForVendor有过-identifierForAdvertising?
对于将图像提交到服务器的iPhone应用程序,我需要以某种方式将特定手机中的所有图像绑定在一起.每次提交我都想发送一些独特的手机ID.看着
[[UIDevice mainDevice] uniqueIdentifier]
and [[NSUserDefaults standardDefaults] stringForKey:@"SBFormattedPhoneNumber"]
但在模拟器中得到错误.
有苹果认可的方式吗?
我有一个使用rest来与服务器通信的应用程序,我想获取iphone的mac地址或设备ID以进行唯一性验证,如何做到这一点?
唯一注册iOS设备的最佳方式是什么,不受Apple未来限制的限制?
我目前注册iOS设备的方法(基本上是唯一地识别设备)是我使用iOS设备的UDID来识别并注册它,然后在识别之后我执行必要的操作.
问题是不推荐使用UIDevice uniqueIdentifier属性.我知道有一些解决方法(正如本问题中所讨论的).
一种可能性是使用iOS设备的MAC地址.但是,我觉得Apple可能会在将来的某个时候限制访问这些信息.
有没有其他方法(除了访问MAC地址)识别iOS设备,我们可以依赖它?
我想在我的iPad上获取ARP条目,就像这里一样.
当编译代码在我的iPad上运行(所以不是模拟器)时,我会丢失标题错误消息.到您在此提到的本地项目,你可以通过复制的头文件解决这些问题后.
问题在于线
sdl =(struct sockaddr_dl*)(sin + 1);
在这段代码中:
-(NSString*) ip2mac: (char*) ip
{
int expire_time, flags, export_only, doing_proxy, found_entry;
NSString *mAddr = nil;
u_long addr = inet_addr(ip);
int mib[6];
size_t needed;
char *host, *lim, *buf, *next;
struct rt_msghdr *rtm;
struct sockaddr_inarp *sin;
struct sockaddr_dl *sdl;
extern int h_errno;
struct hostent *hp;
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0;
mib[3] = AF_INET;
mib[4] = NET_RT_FLAGS;
mib[5] = RTF_LLINFO;
if (sysctl(mib, 6, NULL, &needed, NULL, …Run Code Online (Sandbox Code Playgroud) 我是Mac OS X和X代码的新手,想知道如何在OS X中以编程方式查找计算机的MAC地址。
ios ×6
objective-c ×5
iphone ×4
mac-address ×3
arp ×1
deprecated ×1
device ×1
dns ×1
ios6 ×1
ip-address ×1
macos ×1
networking ×1
privacy ×1
udid ×1
uidevice ×1
xcode ×1