一种获取iOS终端设备唯一标识符的方法和系统技术方案

技术编号:33531064 阅读:105 留言:0更新日期:2022-05-19 02:01
本发明专利技术涉及一种获取iOS终端设备唯一标识符的方法和系统,其中所述方法包括以下步骤:接收目标应用对设备唯一标识符的请求信息,并从中确定被请求的设备唯一标识符的持久级别;读取所述目标应用安装于所述iOS终端时获取的终端信息;以所述终端信息作为随机因子生成随机数;以及根据被请求的唯一标识符的持久级别,将所述随机数作为唯一标识符存储在相应的存储位置。所述系统包括信息获取模块、请求接收模块、随机数生成模块和存储模块。本发明专利技术可以根据目标应用的需求向其提供不同持久级别的设备唯一标识符。的设备唯一标识符。的设备唯一标识符。

【技术实现步骤摘要】
一种获取iOS终端设备唯一标识符的方法和系统


[0001]本专利技术涉及移动应用
,特别地涉及一种获取iOS终端设备唯一标识符的方法和系统。

技术介绍

[0002]设备ID是移动应用
中一个非常关键的数据,对于iOS设备,可作为设备ID的数据例如为UDID、MAC地址、UUID、IDFA和IDFV。
[0003]其中,UDID(Unique Device Identifier,设备唯一标识符)是苹果iOS设备的唯一标识符,其用途之一是被第三方应用开发者和网络广告商用来收集用户数据,记录用户对应用的使用习惯,以便推送精准广告。另一主要用途是通过UDID将某些数据关联到相关设备上。例如,利用UDID将正在开发的应用连接到开发者iOS设备上,从而允许应用在发布前能够通过特定的设备安装或测试,或者使开发者体验应用的iOS测试版。在iOS5以前可以通过系统命令获取UDID,但是由于用户信息的安全、用户隐私等问题,苹果公司在iOS5以后禁止了通过代码访问UDID的权限。
[0004]之后人们使用Mac地址(Medium/Media Access Control address)来作为设备的唯一标识符。Mac地址为网络设备的物理地址,是网络接口唯一标识,然而同样由于用户隐私问题,在iOS7之后便被苹果公司禁止获取。
[0005]UUID(Universally Unique Identifier,通用唯一识别码)是将应用数据和设备数据绑定在一起而产生的标识符。当在设备上安装来自同一个供应商的不同应用时,此值保持不变。如果删除了来自某个供应商的所有应用,再重新安装所述应用时,UUID会改变。
[0006]IDFA(Advertise Identifier,广告标识符)是苹果专门给各广告提供商用来追踪用户而设定的设备标识符,不同应用在同一设备上获取的IDFA是相同的。设备重启不会产生新的IDFA。但是如果用户完全重置系统(设置顺序为:“设置程序”、“通用”、“还原”、“还原位置与隐私”),这个广告标示符会重新生成。另外,如果用户明确地进行还原广告设置时(用户顺序点击以下设备选项:“设置程序”、“通用”、“关于本机”、“广告”、“还原广告标识符”),那么广告标识符也会重新生成。由于会出现取不到IDFA的情况,故通常不使用IDFA作为业务分析的主ID来识别用户。
[0007]IDFV(IdentifierForVendor,厂商标识符)是一种另一种用来标识iOS设备的标识符。如果设备中的应用是从App Store下载而来,IDFV则由App Store提供的数据决定,如果设备中的应用是通过enterprise包或者通过xcode安装的调试包而来,IDFV则由APP的bundle ID计算得来。同一厂商/开发商的应用在指定设备上得到同一个ID。当某一个设备上某个开发商的所有应用被删除之后,在重新安装该开发商的应用后获取到不同的ID。
[0008]综上所述,在获取iOS设备的各种设备标识符时或者依赖于苹果公司,或者依赖于App Store,这种依赖性带来的问题之一是在获取这些标识符时要遵循诸多限制,例如在iOS5以后获取不到UDID;在iOS7以后获取不到Mac地址;当用户禁止了IDFA的获取时,无法得到IDFA;当设备上某个开发商的所有应用被删除后也无法得到IDFV。问题之二是这些标
识符在一定情况下会发生变化,并不能持久地、唯一地表示一个iOS设备,不是真正意义上的唯一标识符。因此有必要提供一种获取iOS终端设备唯一标识符的方法。

技术实现思路

[0009]针对现有技术中存在的技术问题,本专利技术提出了一种获取iOS终端设备唯一标识符的方法和系统,用以提供不同持久级别的设备唯一标识符以满足应用在运行过程中的不同使用需求。
[0010]为了解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了一种获取iOS终端设备唯一标识符的方法,包括以下步骤:接收目标应用对设备唯一标识符的请求信息,并从中确定被请求的设备唯一标识符的持久级别;读取所述目标应用安装于所述iOS终端时获取的终端信息;以所述终端信息作为随机因子生成随机数;以及根据被请求的唯一标识符的持久级别,将所述随机数作为唯一标识符存储在相应的存储位置。
[0011]为了解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了一种获取iOS终端设备唯一标识符的系统,包括信息获取模块、请求接收模块、随机数生成模块和存储模块,其中,所述信息获取模块经配置以获取目标应用安装时的终端信息;所述请求接收模块经配置以接收目标应用对设备唯一标识符的请求信息,并从中确定被请求的设备唯一标识符的持久级别;所述随机数生成模块与所述信息获取模块和请求接收模块相连接,经配置以在所述请求接收模块接收到目标应用对设备唯一标识符的请求信息时,以所述信息获取模块获得的所述终端信息作为随机因子生成随机数;所述存储模块与所述随机数生成模块相连接,经配置以根据持久级别,将所述随机数生成模块生成的所述随机数作为唯一标识符存到相应的存储位置。
[0012]本专利技术能够提供不同持久级别的唯一标识符,并且不再依赖、受制于苹果公司或其他第三方,并且提供的最高持久级别可以在终端系统重置后仍不会改变,从而能够很好地满足iOS终端应用的各种需求,如资源共享、数据共享、用户共享、分析用户价值及用户行为、识别违规用户、低级用户和未成年用户等群体等等。
附图说明
[0013]下面,将结合附图对本专利技术的优选实施方式进行进一步详细的说明,其中:
[0014]图1是根据本专利技术一个应用实施例的设备唯一标识符的获取方法流程图;
[0015]图2是图1中标识符获取系统获取iOS终端设备唯一标识符的方法流程图;
[0016]图3是根据本专利技术的一个实施例生成随机数的方法流程图;
[0017]图4是根据本专利技术的一个实施例当系统重置后获取设备唯一标识符的方法流程图;
[0018]图5是根据本专利技术的一个实施例的获取iOS终端设备唯一标识符的系统原理框图;
[0019]图6是根据本专利技术的一个实施例的随机数生成模块原理框图;
[0020]图7是根据本专利技术另一个实施例的随机数生成模块原理框图;
[0021]图8是根据本专利技术的一个实施例的存储模块的原理框图;以及
[0022]图9是根据本专利技术另一个实施例的存储模块的原理框图。
具体实施方式
[0023]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]在以下的详细描述中,可以参看作为本申请一部分用来说明本申请的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种获取iOS终端设备唯一标识符的方法,包括:接收目标应用对设备唯一标识符的请求信息,并从中确定被请求的设备唯一标识符的持久级别;读取所述目标应用安装于所述iOS终端时获取的终端信息;以所述终端信息作为随机因子生成随机数;以及根据被请求的唯一标识符的持久级别,将所述随机数作为唯一标识符存储在相应的存储位置。2.根据权利要求1所述的方法,其中在所述持久级别为安装级别时,将所述唯一标识符存储在NSUserDefaults中。3.根据权利要求1所述的方法,其中在所述持久级别为厂商级别时,将所述唯一标识符存储在plist文件中。4.根据权利要求1所述的方法,其中在所述持久级别为Keychain级别时,将所述唯一标识符存储在Keychain中。5.根据权利要求1所述的方法,其中当所述持久级别为设备级别时,将所述唯一标识符存储在Keychain中之后还包括:将存储了唯一标识符的Keychain信息上传给服务器中;收集所述iOS终端设备的第一用户特征信息;将所述第一用户特征信息上传到服务器;以及服务器将iOS终端设备上传的Keychain信息和所述第一用户特征信息关联在一起作为所述iOS终端设备的备份信息。6.根据权利要求5所述的方法,其中进一步包括:在iOS终端系统重置后重新安装所述目标应用时收集第二用户特征信息;在接收目标应用对设备级别的唯一标识符的请求信息时将所述第二用户特征信息上传给服务器,并请求获得唯一标识符;所述服务器接收到所述第二用户特征信息及获得唯一标识符的请求后,将所述第二用户特征信息与多个iOS终端设备的备份信息进行匹配,从符合匹配条件的备份信息中确定唯一标识符;以及将所述唯一标识符返回给所述iOS终端。7.根据权利要求5或6所述的方法,其中所述第一/二用户特征信息包括以下信息中的一种或多种:广告位标识符、设备型号、iPhone设备颜色/外壳颜色、Mac地址、IP地址、CPU信息、Disk磁盘空间信息、Memory内存相关数据、系统版本信息、IDFA/IDFV/UUID、屏幕尺寸、音量大小/屏幕亮度/获取的WiFi名称/网络制式、是否越狱/判断是否插入sim卡/判断是否允许推送、获取到的系统开机时间到1970时间差值。8.根据权利要求1所述的方法,其中以所述终端信息作为随机因子生成随机数的步骤进一步包括:将所述终端信息作为噪声数据加入到系统熵池;调用系统内核的随机数发生器;所述随机数发生器根据所述熵池中的噪声数据生成真随机数序列,以及
将所述真随机数序列确定为所述随机数。9.根据权利要求8所述的方法,其中进一步包括:在调用系统内核的随机数发生器之前,将当前系统熵池内的噪声数据与前一次生成随机数时使用的噪声数据相比较;响应于当前系统熵池内的噪声数据与前一次生成随机数时使用的噪声数据相同,等待系统熵池内的新噪声数据;以及响应于系统熵池内有新噪声数据加入,调用系统内核的随机数发生器。10.根据权利要求1或8...

【专利技术属性】
技术研发人员:宋润强
申请(专利权)人:山东赤子城网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1