iOS 开发实用技术导航
NSHipster 中文版
› http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
› http://www.cocos2d-iphone.org/
CocoaPods
› http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
› http://code.google.com/mobile/analytics/
WWDC
› https://developer.apple.com/wwdc/
Design Guides and Resources
› https://developer.apple.com/design/
Transcripts of WWDC sessions
› http://asciiwwdc.com
Cocoa with Love
› http://cocoawithlove.com/
Cocoa Dev Central
› http://cocoadevcentral.com/
NSHipster
› http://nshipster.com/
Style Guides
› Google Objective-C Style Guide
› NYTimes Objective-C Style Guide
Useful Tools and Services
› Charles Web Debugging Proxy
› Smore
moonkiller
V2EX  ›  iDev

iOS 的 app 是如何获取设备的唯一标示的?

  •  
  •   moonkiller · May 14, 2017 · 8218 views
    This topic created in 3470 days ago, the information mentioned may be changed or developed.
    苹果对用户的隐私控制一直比较严格;
    尽量不让 app 获取设备的唯一 ID。

    但是发现探探这个 app 能直接封禁设备,
    如果你在某个 iPhone 上被封了号;
    即使卸载 app,重装后用小号注册,还是会被封禁。
    请问是用了什么技术原理?
    19 replies  •  2017-06-08 13:41:14 +08:00
    wj2061
    wj2061
    May 14, 2017❤️1
    1
    广告 id ?
    zanyzephyr
    zanyzephyr
    May 14, 2017
    2
    读取了 iCloud 信息?
    Jaylee
    Jaylee
    May 14, 2017
    3
    我猜是利用了推送 sdk 里面的 deviceId
    simpleapples
    simpleapples
    May 15, 2017❤️1
    4
    有一个很机智的办法就是,第一次安装时候获取 deviceID 然后存到 keychain 里,这样无论怎么删除 app 都没问题了。
    moonkiller
    moonkiller
    OP
    May 15, 2017
    5
    @simpleapples 只能把 iPhone 恢复出厂设置了吗?
    zhaojjxvi
    zhaojjxvi
    May 15, 2017 via iPhone
    6
    突然想到 Uber 收集 uuid 的事儿,是不是一样性质的?
    或者我记错了
    a412739861
    a412739861
    May 15, 2017
    7
    @simpleapples #4 如果是这样,在 10.3 里删除该 app 的所有 group 组,那这个 keychain 就会被清空。
    LZ 的系统如果是 10.3,就不会受到这个方法的限制了。
    可以试一试。

    如果探探有申请广告 id,那么也一样可以做到的封禁。
    推送的 deviceID 的话,也一样,这种情况的话,可以尝试初始化去重置 deviceID 的。我记得 deviceID 是会更改的,所以 Apple 建议是每次都去获取新的。但是一般似乎基本不会改动。
    gluttony
    gluttony
    May 15, 2017❤️1
    8
    @a412739861 iOS 10.3 beta 2 - 5 删掉同 group 的 app 后会清除 keychain,beta 6 - release 版又改回来了。
    moonkiller
    moonkiller
    OP
    May 15, 2017
    9
    @gluttony
    @a412739861 我还停留在 iOS8...因为 10 还不能越狱😢
    1023400273
    1023400273
    May 15, 2017
    10
    我都是安装第一次随机一个 uuid 直接存到 keychain,以后就都用这个了
    jackisnotspirate
    jackisnotspirate
    May 15, 2017 via iPhone
    11
    上面都讲了生成一个 uuid , 存到 keychain
    还可以同时存到 iCloud
    UIView
    UIView
    May 15, 2017
    12
    通过推送的 deviceid,存到 keychain
    kIdJoEy
    kIdJoEy
    May 15, 2017
    13
    高要求 /风控相关的可以用设备特征指纹,相对可靠性和通用性都高一些=。=
    Jaylee
    Jaylee
    May 15, 2017
    14
    @kIdJoEy 显然你没有做过 iOS 开发
    skylancer
    skylancer
    May 15, 2017
    15
    目前 iOS 只能识别一个不抹掉设备重设情况下的半永久识别
    esile
    esile
    May 15, 2017 via iPhone
    16
    重置广告标识符
    xi_lin
    xi_lin
    May 15, 2017❤️1
    17
    @a412739861 10.3 正式版 keychain 并不会被删除
    Joyreece
    Joyreece
    May 24, 2017
    18
    估计是自定义了一个类似 UID 的字符串,然后存在 KeyChain 里面。
    每次 App 首次启动时,检查 KeyChain 里面有没有特定的 key,如果没有则新建,有的话则发送给服务器进行匹配。
    jackrex
    jackrex
    Jun 8, 2017
    19
    KeyChain 目前是最靠谱的方法,还有 SFSafariViewController + Cookie 的方式,有点黑
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1397 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 17:16 · PVG 01:16 · LAX 09:16 · JFK 12:16
    ♥ Do have faith in what you're doing.