5月1日之后,苹果将拒绝访问uniqueIdentifier的新应用和更新。他们在iOS 6.x中引入了几种新方法,这是很好的,但是.如果我需要在较早版本的SDK上运行我的应用程序呢?所以,我的代码看起来是:
if ([UIDevice instancesRespondToSelector:@(identifierForVendor)]) {
deviceId = [UIDevice currentDevice] identifierForVendor];
} else {
// WHAT SHOULD BE HERE?
}如果它是旧的SDK,开发人员应该使用什么?此外,即使我找到了一些可以使用的东西,但一旦用户升级了他的操作系统版本,这个值也会有所不同,这显然是不好的--对于同一台设备,我们将有两个不同的ids。
发布于 2013-04-27 21:14:15
如果它是旧的SDK,开发人员应该使用什么?
Apple,因此您可能没有选择使用您正在考虑的won't accept apps built with an SDK that's more than a few versions old。您仍然可以将最低支持的iOS版本设置为旧版本,但是即使在Pre6.0设备上运行,您也可能无法使用-uniqueIdentifier。
-[UIDevice uniqueIdentifier]从iOS 5.0开始就不再受欢迎了,所以您已经有近两年的时间来处理它即将消失的事实。现在尝试使用UDID的另一个更新已经太晚了;取决于您如何处理UDID,您可能会遇到问题。在新规则的精神范围内,有几种很好的替换UDID的解决方案,但是,无缝切换到它们的窗口或多或少是封闭的。
即使我找到了一些可以使用的东西,但一旦用户升级了他的操作系统版本,这个值也会有所不同,这显然是不好的--对于同一台设备,我们将有两个不同的ids。
考虑一下不推荐UDID的原因:用户不希望您未经他们的许可就能够跟踪他们的设备,而且Apple肯定不希望被视为允许您跟踪他们的设备。因此,如果您确实找到了一个对您有效且不使用UDID的解决方案,那么如果您的方案不允许用户选择退出您正在进行的任何跟踪,您可能仍然面临被拒绝的风险。
https://stackoverflow.com/questions/16256028
复制相似问题