参考文章 iOS唯一标识符(IDFAIDFV)
创新互联建站是一家专业提供宣恩企业网站建设,专注与成都网站建设、成都做网站、HTML5建站、小程序制作等业务。10年已为宣恩众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
依赖: AdSupport.framework
系统支持: iOS6及以上系统
获取方式: [ASIdentifierManager sharedManager].advertisingIdentifier.UUIDString
定义: 由数字和字母组成的用来标识唯一设备的字符串。
特点:
依赖: UIKit.framework
系统支持: iOS6及以上系统
获取方式: [UIDevice currentDevice].identifierForVendor.UUIDString
定义: 由数字和字母组成的用来标识唯一设备的字符串。
特点: 根据vendor的值,如果vendor相同,则返回同一字符串;如果vendor不同,则返回不同的字符串。
vendor解释: 英文解释为卖家,小贩。根据xcode文档解释,正常情况下,会根据App Store提供的数据进行判断。但是如果app不是通过app store进行安装的(如企业应用或开发调试阶段),那么会根据bundle ID判断。
判断准则:
如:com.example.app1和com.example.app2,只有最后的后缀不同,所以会产生相同的vendor ID
在这里,还需要注意的一点就是:如果用户卸载了同一个vendor对应的所有程序,然后在重新安装同一个vendor提供的程序,此时identifierForVendor会被重置。
方法一:通过Windows下的iTunes
1、数据线连接iPhone手机,在Windows下打开iTunes,在 iPhone 管理界面下点击“序列号”查看自己的 UUID 标识符。
2、此时点击菜单-编辑-复制
3、新建一个文档或文本文件,粘贴就会出现类似于3cfe09dc0a545766ed912db6c32a65b37cc06ae5这就是iPhone手机的UUID
方法二:通过XCode的Organizer
1、点击XCode的菜单-Windows-Organizer,会出现如此界面
2、直接复制、粘贴就可以了
方法三:通过代码实现
对于IOS开发者通过以下代码实现
-(NSString*) uuid {
CFUUIDRef puuid = CFUUIDCreate( nil );
CFStringRef uuidString = CFUUIDCreateString( nil, puuid );
NSString * result = (NSString *)CFStringCreateCopy( NULL, uuidString);
CFRelease(puuid);
CFRelease(uuidString);
return [result autorelease];
}
以下获取 uuidString 的方法,每次重启都会改变。
但是项目的要求是不变,并且删除app 只有也有有保留的需求。显然这个无法满足我们的需求。
使用KeyChain保存到系统钥匙串中,然后再去获取相应的值,就可以保证删除app新装的app也能获取到第一次安装存储的值。显然是可以满足我们的需求的。
下面使用 KeychainAccess 的第三方类库来实现。
开箱即用!
使用方法:
大功告成!
苹果设备的UDID可以直接通过电脑软件iTunes查看。
参考工具和原料:
1.一台MacBook Air。
2.一台iPod Touch。
查看方法:
1.将一台iPod Touch连接MacBook Air,打开软件iTunes查看。
2.点击序列号,查看当前设备UDID(一行由数字和字母组成的字符串)。
1.安装应用到手机A,获取UUID,UUID字符串是:5115e5a0a5464fcca1445fdb73e528b8,同时把UUID保存到钥匙串。
2.卸载应用重新安装,获取钥匙串里保存的UUID是否有值。通过测试验证,钥匙串里有对应保存的UUID,并且UUID字符串是:5115e5a0a5464fcca1445fdb73e528b8(同第1步保存的一样)。
3.反复卸载、安装进行多次,得到的结果(同第2步一样)。
4.恢复出厂设置(跟着提示进行就行,有点繁琐)
4.1把手机恢复出厂设置(抹掉所有内容和设置),抹掉时不进行备份操作,选择立即抹掉。
4.2进行重新设置手机,设置手机时有一步骤是选择恢复备份的界面,选择设置新的iPhone。(就是不选择恢复备份的iCloud备份的数据)。
5.完成第4步以后,手机恢复正常使用。在进行安装应用到手机A。这时,通过测试验证钥匙串里已经没有了之前保存的UUID。这时是重新获取一个新的UUID进行保存到Keychain(钥匙串),UUID字符串是:e56b79c897c847dc82461bad40937cbd。
6.这时把iCloud里的钥匙串打开,进行iCloud数据备份。
7.再次进行恢复出厂设置(换个方式进行)
7.1把手机恢复出厂设置(抹掉所有内容和设置),抹掉时进行备份操作,备份以后进行抹掉。
7.2进行重新设置手机,设置手机时有一步骤是选择恢复备份的界面,这时选择恢复iCloud备份的数据。
8.在次进行安装应用到手机A。这时,通过测试验证,钥匙串里有对应保存的UUID,并且UUID字符串是:e56b79c897c847dc82461bad40937cbd(同第5步保存的一样)。
1.打开手机的iCloud云盘进行数据备份
2.打开iCloud里的钥匙串选项
3.在重新恢复出厂设置的时候(抹掉所有内容和设置),要选择iCloud备份的数据后,在进行抹掉操作。
4.在重新设置手机的时候要保证填写iCloud备份是时对应的iCloud账号(第3步的iCloud账号)。
5.要选择iCloud备份数据恢复设置。
6.不能对手机进行刷机操作。
(通过测试,我个人认为,手机本人刷机后(非一般操作),重新开机,填写iCloud账号同一个的情况下,也可以恢复钥匙串,得到用户应用和设备的唯一性)。
方法一:通过Windows下的iTunes
1
数据线连接iPhone手机,在Windows下打开iTunes,在 iPhone 管理界面下点击“序列号”查看自己的 UUID 标识符。
2
此时点击菜单-编辑-复制
3
新建一个文档或文本文件,粘贴就会出现类似于
3cfe09dc0a545766ed912db6c32a65b37cc06ae5
这就是iPhone手机的UUID
END
方法二:通过XCode的Organizer
1
点击XCode的菜单-Windows-Organizer,会出现如此界面
2
直接复制、粘贴就可以了
END
方法三:通过代码实现
对于IOS开发者通过以下代码实现
-(NSString*) uuid {
CFUUIDRef puuid = CFUUIDCreate( nil );
CFStringRef uuidString = CFUUIDCreateString( nil, puuid );
NSString * result = (NSString *)CFStringCreateCopy( NULL, uuidString);
CFRelease(puuid);
CFRelease(uuidString);
return [result autorelease];
}