一种在应用程序中标识唯一IOS设备的方法和系统与流程

文档序号:18144123发布日期:2019-07-10 11:26阅读:217来源:国知局
一种在应用程序中标识唯一IOS设备的方法和系统与流程

本发明涉及通信技术领域,尤其涉及一种在应用程序中标识唯一ios设备的方法和系统。



背景技术:

ios2.0版本以后uidevice提供一个获取设备唯一标识符的方法,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标示符。许多开发者把唯一设备识别符udid跟用户的真实姓名、密码、住址、其它数据关联起来;网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据。同时大部分应用确实在频繁传输udid和私人信息。为了避免集体诉讼,苹果最终决定在ios5的时候,将这一惯例废除,开发者被引导生成一个唯一的标识符,只能检测应用程序,其他的信息不提供。现在应用试图获取唯一设备识别符udid已被禁止且不允许上架。mac地址倒是可以唯一标示设备,但不幸的是在ios7之后苹果再一次无情的封杀mac地址。

现在公知的技术是通过辅助设备来存储mac地址,用ios设备通过请求来获取mac地址。这样做是可以解决问题但是局限性比较大,数据请求受网络的限制一旦没有网络了,也就获取不到设备的唯一标识了。并且现在ios没有了获取mac地址的可调用的方法。



技术实现要素:

本发明的实施例提供了一种在应用程序中标识唯一ios设备的方法和系统,提供方案如下:

根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;

当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;

将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。

根据本发明的上述方法,根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;包括:

索引所述ios系统中的keychain文件,当检测到与所述应用程序匹配的keychain文件,则确定所述应用程序不是首次安装。

根据本发明的上述方法,根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;包括:

当检测没有与所述应用程序匹配的keychain文件,则确定所述应用程序是首次安装。

根据本发明的上述方法,包括:

当确定ios系统上的应用程序是首次安装时,所述ios系统根据所述应用程序产生对应的keychain文件,将所述应用程序首次运行时产生的通用唯一识别码uuid写入所述keychain并保存。

根据本发明的另一方面,还提供一种在应用程序中标识唯一ios设备的系统,包括:

确定模块:其用于根据在所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;

分配模块:其用于当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;

标识模块:其用于将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。

根据本发明的另一方面,所述确定模块具体用于:

索引所述ios系统中的keychain文件,当检测到与所述应用程序匹配的keychain文件,则确定所述应用程序不是首次安装。

根据本发明的另一方面,所述确定模块具体用于:

当检测没有与所述应用程序匹配的keychain文件,则确定所述应用程序是首次安装。

根据本发明的另一方面,所述确定模块具体用于:

当确定ios系统上的应用程序是首次安装时,所述ios系统根据所述应用程序产生对应的keychain文件,将所述应用程序首次运行时产生的通用唯一识别码uuid写入所述keychain并保存。

根据本发明的另一方面,还提供一种ios设备,包括:

至少一个处理器,以及

与所述至少一个处理器通信连接的存储器、通信接口;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行上述的方法。

根据本发明的另一方面,还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述的方法。

由上述本发明的实施例提供的技术方案可以看出,本发明实施例根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。可以满足服务器端对设备唯一标识需求。再不会因为删除app而导致设备唯一标识的丢失。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种在应用程序中标识唯一ios设备的方法的处理流程图;

图2为为本发明实施例一提供的一种在应用程序中标识唯一ios设备的系统的系统模块图。

具体实施方式

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

实施例一

该实施例提供了一种在应用程序中标识唯一ios设备的方法的处理流程如图1所示,其处理步骤如下:

步骤11、根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;

本实施例中,keychain相当于一个dictionary,所有数据都以key-value的形式存储。

对keychain可以执行add,update,get,delete这四个操作。

对于每一个ios设备上的应用程序来说,keychain都有两个访问区,私有区和公共区。私有区是一个sandbox,本程序存储的任何数据都对其他程序不可见。而要想在将存储的内容放在公共区,需要先声明公共区的名称,官方文档管这个名称叫“keychainaccessgroup”,ios的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于nsuserdeafults,数据库存储,文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因为app被删除而丢失,所以在重装app后,keychain里的数据还能使用。

通用唯一识别码uuid(universallyuniqueidentifier),是在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

同一台移动终端设备上的每个app都有不同的uuid,而且每个app不同时间打开,都可以通过上面的代码生成不同的uuid,但是可以将第一次打开app生成的uuid保存起来。这个uuid关键就在它具有全世界唯一性。

具体地,当ios设备上的应用程序首次安装时,所述ios系统根据所述应用程序产生对应的keychain文件并保存,将所述应用程序首次打开时产生的通用唯一识别码uuid写入keychain保存。

当ios设备上的应用程序被删除后再次安装时,根据ios系统中保存的每个应用程序首次安装产生对应的keychain文件确定所述应用程序不是首次安装,具体地,索引所述ios系统中保存的keychain文件,当检测出与所述应用程序匹配的keychain文件,则确定所述应用程序不是首次安装。

具体地,根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;包括:

索引所述ios系统中的keychain文件,当检测到与所述应用程序匹配的keychain文件,则确定所述应用程序不是首次安装。

当检测没有与所述应用程序匹配的keychain文件,则确定所述应用程序是首次安装。

步骤12、当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;

步骤13、将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。

此外,当确定ios系统上的应用程序是首次安装时,所述ios系统根据所述应用程序产生对应的keychain文件,将所述应用程序首次运行时产生的通用唯一识别码uuid写入所述keychain并保存。

实施例二

该实施例提供了一种在应用程序中标识唯一ios设备的系统,其具体实现结构如图2所示,具体可以包括如下的模块:

确定模块21:其用于根据在所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;

分配模块22:其用于当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;

标识模块23:其用于将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。

所述确定模块21具体用于:

索引所述ios系统中的keychain文件,当检测到与所述应用程序匹配的keychain文件,则确定所述应用程序不是首次安装。

所述确定模块21具体用于:

当检测没有与所述应用程序匹配的keychain文件,则确定所述应用程序是首次安装。

所述确定模块21具体用于:

当确定ios系统上的应用程序是首次安装时,所述ios系统根据所述应用程序产生对应的keychain文件,将所述应用程序首次运行时产生的通用唯一识别码uuid写入所述keychain并保存。

用本发明实施例的系统标识唯一ios设备的具体过程与前述方法实施例类似,此处不再赘述。

综上所述,本发明实施例中根据所述ios设备的ios系统上存在的keychain文件,确定所述应用程序是否是首次安装;当确定所述ios系统上的应用程序不是首次安装时,将所述keychain中保存的所述应用程序首次运行时产生的通用唯一识别码uuid分配至所述应用程序;将所述通用唯一识别码uuid作为在所述应用程序中对所述ios设备的唯一标识。可以满足服务器端对设备唯一标识需求。再不会因为删除app而导致设备唯一标识的丢失。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1