uniqueIdentifier 与 indentifierForVendor 和 Apple 拒绝
Posted
技术标签:
【中文标题】uniqueIdentifier 与 indentifierForVendor 和 Apple 拒绝【英文标题】:uniqueIdentifier vs. indentifierForVendor and Apple rejection 【发布时间】:2012-11-06 21:54:26 【问题描述】:我有一个关于 uniqueIdentifier
与 identifierforVendor
的问题。我们将 UDID 用于登录识别目的,并且我们正在切换到新的 ios 6 版本的 forVendor...
我的问题是这样的 1) Apple 是否拒绝仍在使用 uniqueIdentifier 的应用程序? 2) 他们不允许第一代 ipad 升级到 6.0,他们怎么能拒绝这种看法?
PS - 还发现identifierforVendor
在 6.0 中并不总是有效,看起来它在 6.0.1 中已解决
这是我正在使用的代码...你认为它会被拒绝吗?
static inline NSString* UniqueDeviceId()
if ([[[UIDevice currentDevice] systemVersion] compare:@"6.0.1" options:NSNumericSearch] != NSOrderedAscending)
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
return [[UIDevice currentDevice] uniqueIdentifier];
谢谢
【问题讨论】:
【参考方案1】:虽然我不能代表 Apple 审核团队发言。只要您的应用支持没有替代方案的 iOS 版本,您就不太可能因为使用此已弃用的 API 而被拒绝。
我会更新您的代码以正确检查新方法:
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)])
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
else
return [[UIDevice currentDevice] uniqueIdentifier];
【讨论】:
感谢您的回复...这种方法的唯一问题是,在 6.0 中,我们发现 identifierForVendor 有时会返回空白。这是关于此openradar.appspot.com/radar?id=2049403 的错误报告【参考方案2】:现在不允许应用访问 UDID,并且不得使用 UIDevice 的 uniqueIdentifier 方法。请更新您的应用程序和服务器,以将用户与 iOS 6 中引入的供应商或广告标识符相关联
NSUUID *uuid = [[UIDevice currentDevice] identifierForVendor];
NSString *uuidString = [uuid UUIDString];
并且必须添加 ADSupport 框架
【讨论】:
以上是关于uniqueIdentifier 与 indentifierForVendor 和 Apple 拒绝的主要内容,如果未能解决你的问题,请参考以下文章
操作数类型冲突:int 与 uniqueidentifier 不兼容
SQL Uniqueidentifier 和 hashbytes 与 c# 不匹配
如何使 Entity Framework 6 (DB First) 显式插入 Guid/UniqueIdentifier 主键?