0

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

谢谢你。

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

4

2 回答 2

1

如果 Apple 注意到您正在这样做,那么将钥匙串用于其预期目的之外的其他用途会导致您的应用程序被拒绝。唯一的问题是他们是否会注意到,我不知道。

由于这也侵犯了用户的隐私,因此您的开发者帐户也可能会被删除。当应用程序开发人员确实侵犯用户隐私时,Apple 不喜欢它。Apple 以前对开发者的行为非常严厉,他们做的事情就像你提议的那样。

跟踪用户的正确方法是要求用户输入用户名或电子邮件地址。其他任何事情都在试图规避苹果对允许应用程序开发人员做什么的限制。

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

您可以使用identifierForVendor属性上的UIDevice属性来识别单个设备。如果您想将多个设备链接到一个帐户,那么您必须让用户这样做。没有其他选择,没有应用程序被拒绝的风险。苹果特别不希望开发人员这样做,尽管他们在执行此规则时遇到了麻烦。

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

于 2014-11-23T22:59:29.217 回答
0

使用 iCloud KVS(键值存储)来存储某种设置来跟踪用户的最后一个 pin 怎么样?它可以跨设备应用,但如果用户关闭了 iCloud 文档和数据同步,则可以相对轻松地绕过它。这将在 Apple 的指导方针之内,如果您的限制不是绝对必须的,它可能会起作用。

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

于 2014-11-23T23:56:14.007 回答