我需要检查我的应用程序之前是否安装在设备上。
我有一个方法,将一些数据存储在钥匙链上,然后在第一次启动时,检查数据是否存在,从而确定应用程序是否以前安装过。
不幸的是,就像我遇到的每个人一样,关于在你的应用程序中使用加密的“出口合规性信息”,苹果在上传构建时要求。目前还不清楚使用密钥链是否合法地包含在我们被要求的加密的使用中,这只是一个非常令人头疼的问题,而不是开发人员在专业领域中要确定的事情。
有没有其他方法可以确定之前是否安装过应用程序?
发布于 2020-11-16 04:44:41
将信息存储在钥匙链中是目前唯一可靠的方式,直到苹果最终决定删除这一(Mis)功能。
“出口合规性信息”在这里不起作用,这个问题与加密有关,就像在https中一样。除非您实现了自定义加密方案,否则您通常可以对问题回答"No“(或者在Info.plist中添加您的答案为ITSAppUsesNonExemptEncryption )。
发布于 2020-11-16 04:48:17
多年来,苹果已经禁止了对设备唯一标识符的所有访问: UDID,MAC地址,...
所以答案是:不,没有其他方法可以在应用程序安装之间唯一地识别设备。
有时唯一可行的方法是将推送通知令牌存储在服务器上。我不知道现在的情况如何,但几年前,应用程序重新安装后,这个令牌并没有改变。但根据Apple文档,推送通知令牌不能保证保持不变。因此,它可能会工作,也可能不会工作。
要在使用推送令牌之前检查应用程序是否已安装,您需要在服务器上存储推送令牌和任何唯一ID (例如,最明显的是UUID)。此唯一ID还必须存储在您的应用程序的磁盘空间中(例如,最明显的UserDefaults)。然后,当应用程序启动时,您可以检查唯一ID是否已经存在,...等等。我想现在很清楚了。
https://stackoverflow.com/questions/64849534
复制相似问题