ios - 通过阻止用户在同一设备上注册来防止滥用促销

标签 ios udid idfa

我正在开发一款为新注册用户提供折扣的应用程序。 我想通过阻止用户在他们的设备上注册不同的帐户来避免用户滥用它。我使用的 API 已经在检查电子邮件和联系电话(发送验证码的地方)是否已经存在并阻止注册。我还使用设备 UUID 并将其存储在服务器中以检查是否有人已从该设备注册。

我对 iOS 做了一些研究,这是我想出的:

  • DeviceCheck API 可在 iOS 11+ 上使用。
  • UDID 已弃用。
  • IDFA 可以由用户重置。
  • UUID 可以在卸载应用程序或用户重置他/她的设备后更改。

避免用户滥用此业务逻辑的最佳方法是什么?

最佳答案

我在 2 年前遇到过同样的问题,我通过在钥匙串(keychain)中存储一个值解决了这个问题。

我使用下面的库将值存储在钥匙串(keychain)中。

引用:Keychain wrapper class

将 uuid 存储到设备的示例代码:

let deviceId = UIDevice.currentDevice().identifierForVendor?.UUIDString ?? ""
// Saving Id in keyChain
KeychainWrapper.defaultKeychainWrapper().setString(deviceId, forKey: "CurrentDeviceId")

从钥匙串(keychain)中读取数据。

let previousDeviceId = KeychainWrapper.defaultKeychainWrapper().stringForKey("CurrentDeviceId")

如果 previousDeviceId 值为 nil 或空白,则应用会第一次安装到设备中,否则您的应用会多次安装到设备中。

关于ios - 通过阻止用户在同一设备上注册来防止滥用促销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404691/

相关文章:

ios - 尝试通过 Apple Ad 在 App Store 下载应用程序时,应用程序跟踪透明度权限未提示

iphone - 顺时针旋转 UIView 大于 180 度的角度

ios - 如何让框架之外实现一些特定的方法

android - 获取非电话 iDevices 和 Android 平板电脑的唯一 ID

objective-c - 如何在 iOS 中实现防止重复投票的基本投票机制?

ios - 如何知道应用程序是从特定链接安装的

ios - UILabel 中 sizeToFit 的高度不正确

ios - 结构崩溃仅出现在 "Launch status"上

ios - 如何在iOS中删除并重新安装应用程序来唯一标识设备?

ios - 我们可以检查允许应用程序请求跟踪切换是否打开