iOS 数据打通研究(IDFA与KeyChain)

2018-01-17  本文已影响139人  woniu

由于项目要打通不同APP间的数据,所以针对问题研究了一下,IDFA与KeyChain打通数据,目前来说用IDFA来关联打通数据是最常用的,友盟就是通过IDFA来的,下面请看详细分析:

keyChain数据获取问题:

一、问题描述:

APP1 和 APP2 存储UUID数据到keyChain中,使用相同的key,预期两个APP的UUID本该相同,但是经过测试,两个APP的从keyChain中取出来的值并不同。

二、问题验证:

经过查找资料以及实际验证,keyChain在特定情况下是可以在多个APP中共用的。以下是详细分析:

多种情况对比

详细解释如下:

多个APP获取不到keyChain中的数据的情形:

1、在不同开发者账号中的keyChain之间的数据是不能共享的。

2、在同一开发者账号中的keyChain sharing中的keyChain Groups中的设置不同。

多个APP获取到keyChain中的数据的情形:

1、在同一开发者账号下,在keyChain Groups共享组中设置同一个值来实现keyChain中的数据共享。(注意,必须是同一个开发者账号下的APP)测试实验如下:

TestSDK工程中的keyChain Groups使用工程SDKDemo-9.1中的keyChain Groups设置com.trs.cn.SDKDemo-9-1,我们获取到的设备标识都是

D385D158-203A-4B76-AFFD-520AC4C4F9D8,说明在此种情况下keyChain中的数据是可以在不同的APP中共享的。

TestSDK 的keyChain Groups设置com.trs.cn.SDKDemo-9-1以及数据展示:


TestSDK

SDKDemo-9.1的keyChain Groups设置com.trs.cn.SDKDemo-9-1:

SDKDemo-9.1

IDFA获取问题:

一、IDFA简介

IDFA在APP中可以作为手机唯一标识(重置或禁止使用IDFA不做讨论),在用户不在设置中重置的情况下,IDFA并不会改变。但是获取IDFA要求APP在发布时勾选相关广告的设置,否则会被APP Store打回。

二、测试验证

通过测试验证,IDFA为同一款手机上的所有APP获取的IDFA全部相同,且不会因为APP的重新启动或者删除后再次下载而改变。

测试输出

在设置中还原广告标识符,IDFA会改变,如果限制广告跟踪,则IDFA无法获取。下图为还原广告标识符后,IDFA改变的输出:

还原广告标识符
上一篇 下一篇

猜你喜欢

热点阅读