我们需要唯一标识设备,并且在安装过程中必须相同(重新安装)。到目前为止,我们一直在使用存储在钥匙串中的标识符,因此它会在安装过程中持续存在。现在有了10.3 beta版,卸载应用程序时会自动删除密钥链。 参考:https://forums.developer.apple.com/thread/72271
我们可以使用AdIdentifier作为唯一标识符。我们已投放广告,目前我们正在使用广告。
答案 0 :(得分:1)
您是说AdIdentifier是广告标识符,又名IDFA? https://developer.apple.com/reference/adsupport/asidentifiermanager/1614151-advertisingidentifier
设备应用程序中的设备支架可以轻松替换此值。当用户的广告跟踪有限时,此值也全为零。
想出在网络浏览器中使用Cookie的想法(例如,在首次启动应用时检查Cookie,如果不存在则存储唯一字符串),但也可以由用户修改。
毕竟,我不知道如何完全识别唯一用户。
答案 1 :(得分:1)
似乎有一种解决方法。它实际上是在您链接的论坛中提到的。
通过将钥匙串项目提供给其他应用程序,您可以确保在删除应用程序时不会删除该项目。
为此,您可以将该项添加到iOS 10上的kSecAttrAccessGroupToken
访问组。请参阅https://gist.github.com/Raztor0/34ad0e23a410c33526c9fa1b6e8d281c
如果您将访问组设置为此知名群组,则所有已安装的应用都可以读取您的钥匙串项目:
每个应用程序都可以访问此访问组,因此不需要在keychain-access-groups授权中明确列出该访问组,但应用程序必须在密钥链查询中明确声明此访问组,以便能够从外部令牌访问项目
这使得该项目不适合任何敏感或秘密数据(例如密码,用户名等)。对于设备的唯一标识,这无关紧要。