从app上保存iOS目录中的文本文件

时间:2014-02-25 08:37:44

标签: ios ios7 uniqueidentifier

我正在开发一个程序,我需要存储一个唯一的 device_id ,因为我无法为每个设备获取唯一标识符(例如 MAC地址),因为它已被弃用通过 Apple

我想要做的是,将文件存储在iOS的特定目录中,即使用户删除我的iOS应用程序,该文件也不会被删除。我这样说是因为我使用了NSUserDefaults但是如果用户删除了它的应用程序,那么从中存储的数据就会被删除。

* P.S或者,如果有另一种方法来识别具有unique_id的每个设备,欢迎提出建议!*

2 个答案:

答案 0 :(得分:5)

您应该使用KeyChain保存不应与app一起删除的信息。 https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/Reference/reference.html

更新

这个SO线程可能对您有用Saving/Reading to/from KeyChain

答案 1 :(得分:0)

  

我需要存储一个唯一的device_id,因为我无法获得唯一的   标识符

这不是100%正确。你可以使用

[ UIDevice currentDevice ].identifierForVendor

来自Apple's docs

  

此属性的值对于来自的应用程序是相同的   在同一设备上运行的同一供应商。返回不同的值   对于来自不同供应商的同一设备上的应用程序,以及   不论供应商如何,都可以在不同的设备上使用。

     

通常,供应商由App Store提供的数据确定。   我没有从应用商店安装该应用(例如企业版)   应用程序和应用程序仍在开发中,然后是供应商标识符   根据应用程序的包ID计算。假设包ID   是反向DNS格式。

     

在iOS 6上,捆绑ID的前两个组件用于   生成供应商ID。如果捆绑包ID只有一个组件,   然后使用整个包ID。在IOS 7上,所有组件都是   除最后一个组件之外的bundle用于生成供应商   ID。如果bundle ID只有一个组件,那么整个   使用了包ID。