因此,一旦应用程序安装在设备上,我们就应该跟踪该deviceID
>我已经搜索过检索iPhone / iPad的IMEI,但在objective-c中不允许这样做.
>然后我搜索生成iPhone / iPad的UDID,但是每次我在模拟器上启动它时都会生成不同的ID.
解决方法
UUID是目前最好的方式.但这对每个供应商来说都是独一无二的.每次获得UUID字符串时,您都不确定它是唯一的.最好的办法是将UUID字符串存储到手机的Keychain中,并在需要时使用catch来检索它.当您出厂重置手机时,钥匙串项目将被删除.应该牢记这个限制.
更新 – 在IOS 10.3 BETA’:
似乎Apple对Keychain在iOS 10.3中的工作方式做了一些改动.当卸载特定供应商的所有应用程序时,将删除存储在钥匙串中的钥匙串项目.根据Apple的说法,即使应用程序从设备中消失,应用程序的敏感信息的驻留可能会导致安全风险,因此他们决定禁止这种行为.
即使在卸载应用程序后依赖Keychain存储的开发人员也可以利用此WORKAROUND来继续使用预期的功能.根据此解决方法,任何应用程序都可以访问存储在该特定Keychain访问组中的信息,因此建议为数据添加额外的加密层将以更高的安全性保护它,尽管默认情况下keychain会加密项目.
更新 – IOS 10.3.3(稳定):似乎在iOS 10.3.3的早期测试版中,钥匙串项目删除是一个BUG,并且在稳定版本的后期修复.这可能是在测试期间引起的,因为在该阶段可能会发生奇怪的事情.以后使用钥匙串应该没问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。