Skip to content

iOS11开发新特性之实用小tips #22

@ChenYilong

Description

@ChenYilong
Owner

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

Activity

wellcheng

wellcheng commented on Sep 23, 2017

@wellcheng

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

ChenYilong

ChenYilong commented on Jan 18, 2018

@ChenYilong
OwnerAuthor

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

Args

Args commented on Jul 11, 2018

@Args

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

chaoxcheng

chaoxcheng commented on Sep 27, 2018

@chaoxcheng

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @ChenYilong@wellcheng@chaoxcheng@Args

        Issue actions

          iOS11开发新特性之实用小tips · Issue #22 · ChenYilong/iOS11AdaptationTips