跟踪没有帐户的用户,安装持久

时间:2014-11-23 21:23:00

标签: ios swift udid sskeychain

我想知道如何在没有用户帐户的情况下跟踪用户。 从我所看到的,最好的解决方案是将id存储到SSKeychain中。 从这篇文章:https://stackoverflow.com/a/21097282/3722523,用户将NSUUID存储在钥匙串中。 您认为Apple会使用该解决方案验证我的应用程序吗? 如果是,如果我有数据库,我可以将NSUUID存储在我的数据库中吗?

谢谢。

编辑:出于某种目的,我需要允许用户每天在地图上添加1个图钉。我的应用程序有一个数据库,但我现在不想设置用户帐户。所以我必须跟踪用户,即使他取消并重新安装应用程序。

2 个答案:

答案 0 :(得分:1)

如果Apple注意到您正在执行此操作,则将钥匙串用于除预期目的之外的其他内容将会导致您的应用被拒绝。唯一的问题是他们是否会注意到,我不知道。

由于这也违反了用户的隐私,因此您的开发者帐户也可能会被删除。当App开发者违反用户隐私时,Apple不喜欢它。对于像你提议的那样做事的开发人员,Apple以前一直非常苛刻。

跟踪用户的正确方法是要求用户输入用户名或电子邮件地址。其他任何东西都试图躲避Apple对应用开发者可以做的限制。

您需要明确说明用户正在您的服务器上创建帐户,并且您需要让用户控制该帐户。另外,仅仅因为两个设备使用相同的钥匙串并不意味着同一个人使用这些设备 - 因此使用钥匙串或与iCloud相关的任何设备绝对不正确。

您可以使用identifierForVendor属性上的UIDevice属性来标识单个设备。如果您想将多个设备链接到一个帐户,那么您必须让用户这样做。没有其他选择,没有申请拒绝的风险。 Apple特别不希望开发人员这样做,尽管他们无法执行此规则。

另请注意,您不得将identifierForVendor用于广告。绝不能与任何广告系统共享。有一个单独的标识符,用户可以选择退出。

答案 1 :(得分:0)

使用iCloud KVS(键值存储)存储某种跟踪用户最后一个引脚的设置怎么样?它适用于各种设备,但如果用户关闭了iCloud Documents和Data同步,则可以相对容易地规避它。这将符合Apple的指导方针,如果您的限制不是绝对必要的话,它可能会有效。

它会在多次安装之间持续存在,并且还可以防止用户通过多个设备添加多个引脚。