V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
nellace
V2EX  ›  iDev

ios 唯一识别怎么做才能更好

  •  
  •   nellace · 2015-06-10 10:30:04 +08:00 · 5335 次点击
    这是一个创建于 3214 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ios7以后uuid用不了了以后,程序中原来用的OpenUUId第三方来使用,但是openuuid这个第三方好像有问题,有的时候唯一识别码会变
    后来想到了自己生成一个唯一识别码,存在keychain里面,每次都读一下,但是好像系统升级后就读不到了,
    大家有没有好的解决方案,求指导啊

    37 条回复    2015-12-02 17:25:14 +08:00
    zhicheng
        1
    zhicheng  
       2015-06-10 10:33:41 +08:00 via Android
    存多份,浏览器写Cookie。
    nellace
        2
    nellace  
    OP
       2015-06-10 10:42:16 +08:00
    @zhicheng 怎么讲?我这个是ios app啊
    txx
        3
    txx  
       2015-06-10 10:46:52 +08:00
    idfa..
    zhicheng
        4
    zhicheng  
       2015-06-10 10:54:43 +08:00 via Android   ❤️ 1
    从应用调出浏览器打开服务器网址,服务器写完 Cookie 再从定向到App。如果你不知道我说什么意思,就别继续问了。。。
    nellace
        5
    nellace  
    OP
       2015-06-10 11:06:58 +08:00
    @zhicheng 好思路,我先试一下,以前没这么做过
    lliioogg
        6
    lliioogg  
       2015-06-10 11:39:49 +08:00
    @zhicheng 思路这么广
    knightlhs
        7
    knightlhs  
       2015-06-10 12:00:02 +08:00
    苹果并不提倡这样做 有被拒绝的风险
    v2Panda
        8
    v2Panda  
       2015-06-10 12:23:04 +08:00 via iPhone
    一直用的cfuuid
    finab
        9
    finab  
       2015-06-10 12:28:05 +08:00   ❤️ 1
    @zhicheng 这样有一次跳出跳入的动作,而且清了COOKIE 标识符一起被清除了吧。。

    @nellace 其实保证一个相对的唯一就行, 用户刷机了 升级了 就算两台设备又何妨,他又不会天天刷机升级。。
    一般用IDFA ,然后集成广告,写个代码 保证只有提交审核的版本 会出现广告
    例如可以用版本号来限制,提交审核的版本号肯定是大于 商店版本的,然后只要大于商店版本,就显示广告,否则就隐藏不加载。。 一般都能审核通过

    第二种就是楼主你说的,用keychain 将OpenUDID的 结果存在keychain 里,也能保持设备唯一。。

    上面两种方法 都不能保证设备绝对唯一,但是一般程序完全够用,用户不可能为了欺骗你的程序 就去刷个机吧?
    wezzard
        10
    wezzard  
       2015-06-10 12:32:51 +08:00
    我玩 LoveLive 的時候注意到一個很神奇的現象,無論我刷多少次機,遊戲一啓動,存檔都不會變。
    1up
        11
    1up  
       2015-06-10 12:45:38 +08:00
    IDFA为什么不行?
    guibin1989
        12
    guibin1989  
       2015-06-10 12:52:16 +08:00
    还是用IDFA吧
    tianzhou
        13
    tianzhou  
       2015-06-10 13:06:02 +08:00
    可以用MAC address吧
    typcn
        14
    typcn  
       2015-06-10 13:06:07 +08:00
    生成一个,存到 icloud 里面。。
    nellace
        15
    nellace  
    OP
       2015-06-10 13:28:47 +08:00
    @finab 感谢,我现在也是担心浏览器清cookie后会不会清掉。

    @1up 因为app没有集成广告模块,如果集成了是完全可以的

    @wezzard 游戏是因为有Game Center,如果你玩的时候 启动并绑定了,存档数据会保留在Game Center,相当于云端保存

    @v2Panda cfuuid其实也是要存keychain,否则会变

    @tianzhou mac address 已经不行了,被苹果启用了,所有设备地址同为00
    wezzard
        16
    wezzard  
       2015-06-10 14:06:33 +08:00
    @nellace 但是我換台手機就沒了。
    honeycomb
        17
    honeycomb  
       2015-06-10 14:07:48 +08:00
    希望下个iOS能关掉通过Keychain曲线救国的漏洞

    @finab
    在Android版本低到还能用Xprivacy的时候我会这么做的,凭什么让你的软件追踪我设备的永久性标识符??
    txx
        18
    txx  
       2015-06-10 14:08:16 +08:00   ❤️ 1
    @nellace 不需要广告模块....提交 idfa 选择第二个 就好了
    lawder
        19
    lawder  
       2015-06-10 14:11:00 +08:00
    @wezzard 换台手机如果登录了Game Center,应该也会有的
    felixzhu
        20
    felixzhu  
       2015-06-10 14:24:01 +08:00
    keychain当密码存起来
    nellace
        21
    nellace  
    OP
       2015-06-10 14:34:39 +08:00
    @txx 好的谢谢帮助,我研究一下,原来没用过idfa
    wezzard
        22
    wezzard  
       2015-06-10 14:36:11 +08:00
    @lawder 不會有的哦,你自己下載一個 Love Live 就知道了,換手機要記錄下上太手機的「引き続きパスコード」然後在下台手機上輸入才行。
    yellowV2ex
        23
    yellowV2ex  
       2015-06-10 14:42:48 +08:00
    我觉得不用太纠结
    既然我应用都卸载了,机都重置了,密码也清掉了,你就把我当成是一个新机器就好啦
    并且我这么做,多数是因为我想要一个新机器或者已经卖给别人了
    为什么你要纠结这个问题,目前来说 keychain 能满足你
    wuyuchenshishabi
        24
    wuyuchenshishabi  
       2015-06-10 14:45:08 +08:00
    一楼真是神经病人思路广
    nellace
        25
    nellace  
    OP
       2015-06-10 14:50:42 +08:00
    @yellowV2ex 其实是我们的app,直接是地推来卖,卖出去一个就用唯一识别码来计算到期期限,一直有的用户用着用着唯一识别就变了。。。。。。

    @wuyuchenshishabi 一楼都方法是可行,确实难想到。。。
    fgwww
        26
    fgwww  
       2015-06-10 14:52:29 +08:00
    一楼的方法对于作弊的人轻松干掉了。一键清理keychain,cookie啥的工具早就泛滥了
    superpeaser
        27
    superpeaser  
       2015-06-10 15:34:52 +08:00
    IDFA吧 我发现广告推广商用的都是IDFA,mac address ios7以后就不行了
    zhicheng
        28
    zhicheng  
       2015-06-10 15:42:33 +08:00
    "**存多份**,浏览器写Cookie。"
    用户不应该在 App 中登录,而是应该跳到浏览器中登录,不明白为什么的也不要问了。。。
    yellowV2ex
        29
    yellowV2ex  
       2015-06-10 15:45:44 +08:00
    @superpeaser IDFA卸载重装也是会变啊
    SFCJTLMF
        30
    SFCJTLMF  
       2015-06-10 15:49:57 +08:00
    @zhicheng 您好,您这个方法违反了我们 apple store 的政策,请问您的 app 名字是什么。
    qq2511296
        31
    qq2511296  
       2015-06-10 16:03:31 +08:00
    貌似我之前上架的app 也用了的idfa 但是没广告里面 没有被拒绝 成功上架
    qingjoin
        32
    qingjoin  
       2015-06-10 17:32:44 +08:00
    IDFA 必须要加入广告才能通过审核,用openUUID吧

    https://github.com/ylechelle/OpenUDID
    79bxh9b
        33
    79bxh9b  
       2015-06-10 21:32:09 +08:00
    存keychain里也不行,两台机器用同一个备份恢复的话uuid会一样
    lucky2touch
        34
    lucky2touch  
       2015-06-10 21:38:16 +08:00
    PSN的iOS app就是用浏览器登陆的,不过这样做程序跳出率会不会升高?
    1up
        35
    1up  
       2015-06-10 21:46:51 +08:00
    @nellace 其实是我们的app,直接是地推来卖,卖出去一个就用唯一识别码来计算到期期限,一直有的用户用着用着唯一识别就变了 这是什么场景和含义?请指教一下
    nellace
        36
    nellace  
    OP
       2015-06-11 08:34:32 +08:00
    @1up 就是付费用户莫名其妙设备唯一识别变化了,导致提前到期了,现在就在为这么最大成都保证唯一识别码不变兵力
    whtoo
        37
    whtoo  
       2015-12-02 17:25:14 +08:00
    http://blog.chinaunix.net/uid-17188120-id-2820866.html
    服务器 socket 配合 server 端取 mac id 然后 hash
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3163 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.