Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 跟踪没有帐户的用户,持续安装_Ios_Swift_Udid_Sskeychain - Fatal编程技术网

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

Ios 跟踪没有帐户的用户,持续安装,ios,swift,udid,sskeychain,Ios,Swift,Udid,Sskeychain,我想知道现在没有用户帐户我怎么能跟踪用户。 据我所见,最好的解决方案是将id存储到SSKeychain中。 在本文中,用户将NSUID存储在密钥链中。 你认为苹果会用这个解决方案验证我的应用程序吗? 如果是,如果我有一个数据库,我可以将NSUID存储在我的数据库中吗 多谢各位 编辑:出于某种目的,我需要允许用户每天只在地图上添加1个pin。我的应用程序有一个数据库,但我现在不想设置用户帐户。因此,我必须跟踪用户,即使他卸载并重新安装了应用程序。如果苹果注意到你正在这样做,那么将钥匙链用于其他用途

我想知道现在没有用户帐户我怎么能跟踪用户。 据我所见,最好的解决方案是将id存储到SSKeychain中。 在本文中,用户将NSUID存储在密钥链中。 你认为苹果会用这个解决方案验证我的应用程序吗?
如果是,如果我有一个数据库,我可以将NSUID存储在我的数据库中吗

多谢各位


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

如果苹果注意到你正在这样做,那么将钥匙链用于其他用途将导致你的应用程序被拒绝。唯一的问题是他们是否会注意到,我不知道

由于这也侵犯了用户的隐私,因此您的开发人员帐户也有可能被删除。苹果不喜欢应用开发者侵犯用户隐私。苹果以前对那些做你提议的事情的开发者非常苛刻

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

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

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


还请注意,不允许在广告中使用供应商的标识。不得与任何广告系统共享。有一个单独的标识符,用户可以选择不使用。

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


它将在多个安装之间保持不变,并且还可以防止用户通过多个设备添加多个PIN。

谢谢您的回答。我听说如果用户卸载并重新安装了正确的应用程序,供应商的标识将被重置。苹果故意不提供可以按照您请求的方式跟踪用户的标识符。那是故意的。试图绕过这一设计可能会与审查相冲突。你一次获得批准并不意味着你将来不会被拒绝(正如超速行驶而不被抓到并不意味着警察不会把你拦下)。许多开发人员都遇到过这样的问题:“我只是做了一个小的更新,现在我发现我的整个方法都被拒绝了。”如果需要验证用户,则需要创建服务器帐户。看起来我必须创建用户帐户。但我相信我会想念那些不想创造新客户的潜在客户accounts@user3722523因此,让帐户成为可选的。如果有人只在一台设备上使用你的应用程序,让他们在没有帐户的情况下使用。使用供应商的标识。