iOS11AdaptationTips icon indicating copy to clipboard operation
iOS11AdaptationTips copied to clipboard

iOS11开发新特性之实用小tips

Open ChenYilong opened this issue 6 years ago • 4 comments

iOS11开发新特性之实用小tips

DeviceCheck

DeviceCheck 允许你通过你的服务器与 Apple 服务器通讯,并为单个设备设置两个 bit 的数据。 在设备上用 DeviceCheck API 生成一个 2字节的 token (00, 01,10,11),然后将这个 token 发给自己的服务器,再由自己的服务器与 Apple 的 API 进行通讯,来更新或者查询该设备的值。这两字节 的数据用来追踪用户。比如。借助两个自己的数据,你可以得知用户究竟使用了该 App 多久。

该 API 可以成为:反欺诈领域:

  • 试用7天
  • Uber、滴滴司机被封号后,防止重新注册账号接单
  • 该用户是否已经领取过首次注册红包
  • APP防多开

因为传输的是 flag 级别的数据,并不会定位到该设备的使用者,所以相对安全。

但是对于购买了二手手机的使用场景,可能会出现一些边界情况,这个在业务中也需要考虑进去。

Reference:

Apple implements the DeviceCheck in iOS 11, to detect if an app is already installed even after the removal

APP 删除后 keychain 不会被清理

版本 事件 说明
iOS 10.3 beta 1-5版本 保存在keychain中的App相关的数据,会随着应用的删除而被清除,重新安装App后将无法再从keychain中获取应用相关的数据。而10.3之前删除App并不会清理keychain中的对应数据。如果希望App在重新安装后,仍然可以获取到之前的一些数据,则依赖于keychain的方案将变得不可靠。不过,如果数据是在多个App间共享,则只有当所有相关的App都被删除后,才会删除keychain中的这些共享数据。 iOS 10.3 Beta 2 autodeletes keychain items after application uninstall?
10.3 beta 6 版本、10.3正式版、iOS11 恢复到之前的状态,从新安装可以访问到以前保存的数据了。 iOS 10.3 beta 3 doesn't persist data of KeychainItem

ChenYilong avatar Sep 21 '17 09:09 ChenYilong

keychain would't,意味着 UDID 那一套还可以继续用吧

wellcheng avatar Sep 23 '17 12:09 wellcheng

UDID 一直是可以用的,跟keychain没有关联

ChenYilong avatar Jan 18 '18 14:01 ChenYilong

@ChenYilong UDID不是早就不能用了吗?不是说这个不让获取吗

Args avatar Jul 11 '18 09:07 Args

应该指得是UUID........

chaoxcheng avatar Sep 27 '18 07:09 chaoxcheng