gpt4 book ai didi

iOS7 应用向后兼容 iOS5 关于唯一标识符

转载 作者:技术小花猫 更新时间:2023-10-29 11:04:41 25 4
gpt4 key购买 nike

我的应用与 iOS5 和 iOS6 兼容。直到现在,我都可以使用:

NSString DeviceID = [[UIDevice currentDevice] uniqueIdentifier];

现在使用 iOS7 和 uniqueIdentifier 不再工作我改为:

NSString DeviceID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

问题是,这不适用于 iOS5。

如何实现与 iOS5 的向后兼容?

我试过了,没有运气:

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
// iOS 6.0 or later
NSString DeviceID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
#else
// iOS 5.X or earlier
NSString DeviceID = [[UIDevice currentDevice] uniqueIdentifier];
#endif

最佳答案

Apple 推荐的最佳选项是:

 NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

将它用于 5.0 以上的所有设备。

对于 5.0,您必须使用 uniqueIdentifier。检查它是否可用的最佳方法是:

if (!NSClassFromString(@"ASIdentifierManager"))

结合起来你会得到:

- (NSString *) advertisingIdentifier
{
if (!NSClassFromString(@"ASIdentifierManager")) {
SEL selector = NSSelectorFromString(@"uniqueIdentifier");
if ([[UIDevice currentDevice] respondsToSelector:selector]) {
return [[UIDevice currentDevice] performSelector:selector];
}
//or get macaddress here http://iosdevelopertips.com/device/determine-mac-address.html
}
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}

关于iOS7 应用向后兼容 iOS5 关于唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com