使用弃用的UDID的openUDID

时间:2011-12-12 03:15:58

标签: iphone ios

我正在考虑在我的应用中使用openUDID进行注册。

然而它仍然使用UDID号苹果问题,所以我只是通过.m文件阅读并遇到了这个:

// One day, this may no longer be allowed in iOS. When that is, just comment this line out.
    //
#if TARGET_OS_IPHONE    
    if([UIDevice instancesRespondToSelector:@selector(uniqueIdentifier)]){
        _openUDID = [[UIDevice currentDevice] uniqueIdentifier];
    }

#endif

    // Take this opportunity to give the simulator a proper UDID (i.e. nullify UDID and create an OpenUDID)
    //
#if TARGET_IPHONE_SIMULATOR
    _openUDID = nil;
#endif

    // Next we try to use an alternative method which uses the host name, process ID, and a time stamp
    // We then hash it with md5 to get 32 bytes, and then add 4 extra random bytes
    // Collision is possible of course, but unlikely and suitable for most industry needs (e.g.. aggregate tracking)
    //

但是我不确定要注释掉哪一行,以便它使用使用主机名,进程ID和时间戳的替代方法

2 个答案:

答案 0 :(得分:4)

您可以在TARGET_OS_IPHONE

中注释掉3行代码

答案 1 :(得分:0)

您可以通过使用双斜杠评论为该行添加前缀来“注释”其中包含uniqueIdentifier的行。或者您可以将#if TARGET_OS_IPHONE行更改为#if 0,意味着永远不会调用代码块。

然后替代代码将被替代使用。

当前编写代码的方式,让我保持原样似乎是非常安全的。 Apple完全取消uniqueIdentifier方法后,instancesRespondToSelector调用将正确失败,替代代码将自动使用。