我是一名初级专业软件开发人员。我正在使用每个用户的设备限制应用程序,我们使用UIDevice.current.identifierForVendor来识别设备。不幸的是,我们遇到了"设备限制已达"的问题。当安装和重新安装应用程序。
根据identifierForVendor文档:
该属性的值在应用程序(或其他应用程序)运行时保持不变应用程序从同一供应商)安装在iOS设备上。的值当用户删除该供应商的所有应用程序时,会发生变化设备,然后重新安装其中一个或多个。
问题很明显-在应用程序被删除并重新安装后,我们有一个新的identifierForVendor,我们把它当作一个新的设备。
根据文档的另一部分:
正常情况下,供应商为由App Store提供的数据决定。如果应用程序不是从应用商店安装(如企业应用和应用仍然)在开发中),那么供应商标识符将基于app的bundle ID。
我有两个问题:
- 问题发生时,我们从Xcode或TestFlight安装应用程序。当我们从AppStore安装应用程序时,它是否也会出现?
- 是否有其他方法来限制设备数量和确定设备?
p。我知道,已经有一些类似的问题,但在我看来,答案并不详尽,而且这是几年前的事了:)
您可以尝试使用Keychain:
- 生成
UUID().uuidString
- 将其保存到Keychain与一些Keychain包装(例如KeychainAccess)使用key "UniqueDeveiceID"什么的。
- 发送生成的UUID到服务器(或其他)
总结:应用程序启动后,只需检查键UniqueDeveiceID
存在的值。钥匙扣在重新安装后没有清洗,所以你必须有机会检查它是重新安装还是新注册的设备。