相关疑难解决方法(0)

UIDevice uniqueIdentifier已弃用 - 现在该怎么办?

刚刚看到UIDevice uniqueIdentifier属性iOS 5中已弃用,在iOS 7及更高版本中不可用.似乎没有替代方法或财产可用或即将出现.

我们的许多现有应用程序都严格依赖此属性来唯一标识特定设备.我们如何处理这个问题呢?

2011 - 2012文件中的建议是:

特别注意事项

不要使用uniqueIdentifier属性.要创建特定于应用程序的唯一标识符,可以调用该CFUUIDCreate函数创建一个UUID,并使用NSUserDefaults该类将其写入默认数据库.

但是,如果用户卸载并重新安装应用程序,则此值将不同.

deprecated uidevice ios

498
推荐指数
12
解决办法
16万
查看次数

advertisingIdentifier和identifierForVendor返回"00000000-0000-0000-0000-000000000000"

我已经实现了这个方法来获取advertisingIdentifieridentifierForVendor:

- (NSString *) advertisingIdentifier
{
    if (!NSClassFromString(@"ASIdentifierManager")) {
        return [OpenUDID value];
    }
    return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}

- (NSString *) identifierForVendor
{
    if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
        return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    }
    return @"";
}

- (BOOL)isAdvertisingTrackingEnabled
{
    if (NSClassFromString(@"ASIdentifierManager") && ![[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在模拟器上一切正常,我可以获得2个字符串ID表示.

但是当我从带有iOS 6.0的iPhone 3GS(10A403)运行时,这两种方法返回"00000000-0000-0000-0000-000000000000"作为标识符.已经完成了:

  • 重启设备
  • 删除了应用程序并重新安装
  • 创建和Ad-Hoc再次构建,安装,删除和安装
  • 从另一个应用程序运行此代码
  • 使用iOS 6.0(10A403)在iPad 2上测试,一切正常(我有正确的标识符)

xcode ads ios ios6

25
推荐指数
2
解决办法
2万
查看次数

标签 统计

ios ×2

ads ×1

deprecated ×1

ios6 ×1

uidevice ×1

xcode ×1