iOS7 断了统计和追踪用户的后路

评论里大家都认可用identifierForVendor 然后用keychain和iCloud各保存一份. 看来这是接近最终结果的办法了.

官方文档又说了下面的话, 又有点费解. 我们只要把最后一组string忽略就可以得到不变的id了?

Comparing [[[UIDevice currentDevice] identifierForVendor] UUIDString] on multiple Enterprise applications or applications installed via Xcode (not the App Store), where the bundleIDs differ only in the last component, will result in identical strings.


开始在新系统上测试 发现这个问题很严重. 我们真的没有办法唯一确定一个用户设备了!

  1. UDID肯定是不能用了. (UIDevice.uniqueIdentifier接口被删除

  2. OpenUDID不能用了. OpenUDID是用系统粘贴板作为中间存储供所有app调用. 新的系统把粘贴板的访问权限限制在了同一个开发者的范围内,既同一个开发者的多个app在同个设备上共享粘贴

  3. MAC地址不能用了. 得到的是类似0x2FFFFFFFF的假地址

有个方法是通过IOKit.framework里的接口来获得手机序列号 同样的还能获得IMEI. 但是虽然IOKit在公开的API范围中,同样会被苹果拒绝!!

目前看,开发者只能用UIDevice.identifierForVendor来获得用户ID,而官方文档中又说这个方法获得的ID在删除app重装后会改变.

如果你有什么好办法, 非常希望能推荐一下.

原文地址:https://www.cnblogs.com/zsw-1993/p/4879647.html