应用程序删除后压力CFUUIDRef

时间:2012-11-22 13:29:13

标签: iphone objective-c ios nsuserdefaults

最近苹果拒绝使用唯一设备标识符(UDID)的应用,在我的应用中,我第一次为每个设备创建一次CFUUIDRef,效果很好。 在我的应用程序中,我给新用户10点击按钮(某些服务),当我第一次创建设备ID时,它发送到服务器,此ID现在有10次点击的功劳。 问题是当用户删除我的应用程序时,它会生成一个新的标识符。 我怎么能用一个标识符写一些文件给iphone,例如“MyCustomDeviceID” 当用户下载应用程序时,我正在检查此文件是否存在,如果是,我将获取已保存的参数,如果不是,我将创建标识符,然后创建文档。 我必须有一些方法在iPhone上留下印记。

我们将不胜感激!

2 个答案:

答案 0 :(得分:3)

假设您可以将CFUUIDRef转换为NSString,您可以将其存储在钥匙串中。存储在钥匙串中的项目会在应用删除期间持续存在。查看PDKeychainBindingsController以供参考。

答案 1 :(得分:1)

在iOS上,您没有“共享空间”,可以在删除应用程序后保存数据并进行维护。你必须以其他方式做到这一点:

  • 您可以为您的应用启用iCloud并使用NSUbiquitousKeyValueStore保存您的ID。

  • 您可以将您的标识符保存在NSUserDefaults中,因此如果该应用程序被删除然后重新安装,它将在备份中可用。 (显然用户必须从备份恢复)

  • 或者您可以将标识符与名义帐户相关联。 (您必须创建一个系统,用户可以使用此名义帐户进行注册和登录)