前言
日常获取APP的唯一号可以通过OpenUDID,但是如果APP有多个签名,比如Appstore签名或企业签名,以及日常的开发者证书的签名,即使是同一个bundleId,使用各种不同的证书重签名后,各自调用OpenUDID生成的唯一号都是不是同的,这个会很影响判断唯一设备
解决方案:
在使用OpenUDID这个库的同时,增加获取设备基本信息来生成一个辅助的唯一号来帮助判断是否是同一台设备,比如用户设置的手机名字、手机型号、屏幕大小、手机系统、总硬盘大小、总内存大小等信息来组合成一个字符串,因为这些信息都可以获取到,但是基本不会变
在不需要考虑多种签名时使用OpenUDID就可以
https://github.com/ylechelle/OpenUDID
在遇到一个bundleId对应多种签名时,使用系统硬件信息进行辅助
https://github.com/Shmoopi/iOS-System-Services