【问题标题】:UIDevice uniqueIdentifier is deprecated [duplicate]UIDevice uniqueIdentifier 已弃用[重复]
【发布时间】:2023-03-06 17:28:01
【问题描述】:

5 月 1 日之后,Apple 将拒绝访问 uniqueIdentifier 的新应用和更新。他们在 iOS 6.x 中引入了一些很好的新方法,但是……如果我需要在旧版本的 SDK 上运行我的应用程序怎么办?所以,我的代码看起来像:

if ([UIDevice instancesRespondToSelector:@(identifierForVendor)]) {
     deviceId = [UIDevice currentDevice] identifierForVendor];
} else {
    // WHAT SHOULD BE HERE?
}

如果是旧的 SDK,开发者应该使用什么?此外,即使假设我找到要使用的东西,一旦用户升级他的操作系统版本,该值也会有所不同,这显然很糟糕——同一设备会有两个不同的 id。

【问题讨论】:

  • 好吧,[[UIDevice currentDevice] uniqueIdentifier],也许?
  • @H2CO3 Apple 将拒绝它们。
  • @H2CO3 好像还是会被苹果拒绝
  • @iKiR uniqueIdentifier 在 iOS 5.0 中已被弃用。替换它的方法是众所周知的。例如,您可以创建自己的标识符并将其保存到钥匙串中。请参阅上面提到的链接@san。

标签: ios ios6


【解决方案1】:

如果是旧的SDK,开发者应该使用什么?

Apple won't accept apps built with an SDK that's more than a few versions old,因此您可能无法选择使用您正在考虑的 SDK。您仍然可以将支持的最低 iOS 版本设置为旧版本,但即使在 6.0 之前的设备上运行,您也可能无法使用 -uniqueIdentifier

-[UIDevice uniqueIdentifier] 自 iOS 5.0 以来已被弃用,因此您有将近 2 年的时间来处理它即将消失的事实。此时尝试潜入另一个使用 UDID 的更新为时已晚;根据您对 UDID 所做的操作,您可能会遇到问题。在新规则的精神内,有几个很好的替换 UDID 的解决方案,但同样,无缝切换到它们的窗口或多或少地关闭了。

即使假设我找到了可以使用的东西,价值也会有所不同 一旦用户升级他的操作系统版本,这显然很糟糕 - 我们会 同一设备有两个不同的 id。

考虑不推荐使用 UDID 的原因:用户不希望您在未经他们许可的情况下跟踪他们的设备,Apple 肯定不希望被视为使您能够做。因此,如果您确实找到了适合您且不使用 UDID 的解决方案,如果您的方案不允许用户选择退出对您的任何跟踪,您仍可能面临被拒绝的风险'正在做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2018-01-03
    • 2014-10-27
    • 2020-09-23
    • 2014-03-14
    • 2013-02-23
    • 2014-09-18
    相关资源
    最近更新 更多