【问题标题】:limit device number vs UIDevice.current.identifierForVendor限制设备号与 UIDevice.current.identifierForVendor
【发布时间】:2021-11-11 09:29:44
【问题描述】:

我是一名初级专业软件开发人员。 我正在开发具有每个用户设备限制的应用程序,我们使用 UIDevice.current.identifierForVendor 来识别设备。不幸的是,我们在安装和重新安装应用程序时遇到了“已达到设备限制”的问题。

根据 identifierForVendor 文档:

此属性中的值在应用程序(或其他 来自同一供应商的应用程序)安装在 iOS 设备上。价值 当用户从 设备,然后重新安装其中的一个或多个。

问题很明显 - 删除并重新安装应用后,我们有一个新的标识符ForVendor,我们将其视为新设备。

根据文档的另一部分:

通常,供应商是 由 App Store 提供的数据确定。如果应用程序不是 从应用商店安装(如企业应用和应用仍然 在开发中),然后根据 应用的捆绑包 ID。

我有两个问题:

  1. 当我们从 Xcode 或 TestFlight 安装应用程序时出现问题。当我们从 AppStore 安装应用时,它也会出现吗?
  2. 有没有其他方法可以限制设备数量和确定设备?

PS。我知道,已经有一些类似的问题,但在我看来,答案并不详尽,而且是几年前的事了 :)

【问题讨论】:

  • “我正在开发具有帐户设备限制的应用程序”您所谓的“帐户设备限制”是什么?
  • 谢谢,已更正。
  • @JanekPodwysocki 只是想知道我下面的解决方案是否对您有所帮助?

标签: ios swift iphone ipad


【解决方案1】:

你可以试试钥匙串

  1. 生成UUID().uuidString
  2. 使用密钥“UniqueDeveiceID”或其他东西将其保存到 Keychain 和一些 Keychain 包装器(例如 KeychainAccess)。
  3. 将生成的 UUID 发送到服务器(或其他)

总结如下: 应用程序启动后,只需检查键 UniqueDeveiceID 的值是否存在。重新安装后钥匙串没有清理,因此您必须有机会检查它是重新安装还是新注册的设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多