是否有可能创build一个设备特定的.plist文件-iOS

我将一些数据存储在plist文件中,我意识到它可以被共享。 有没有一种方法,我可以使.plist文件设备特定? 也许UDID或者什么? 任何想法将不胜感激..

如果您不希望其他人查看.plist文件的内容,则可以使用iOS提供的encryptionalgorithm对其进行encryption 。 其他简单的方法是将您的敏感数据存储在钥匙串中,或NSUserDefaults而不写入文件,这将是非常具体的设备。 祝你好运!

UDID从2013年5月1日起被禁止。

从iOS 6起,还有一个名为identifierForVendor方法。 您可以使用此方法在每个iOS设备中为您的应用程序创build唯一标识符。

你可以像这样得到它:

 NSString *idForApp = [[UIDevice currentDevice] identifierForVendor]; 

使用idForApp保存你的plist 。 这将是独一无二的。

identifierForVendor

一个字母数字string,用于唯一标识应用程序供应商的设备。 (只读)

 @property(nonatomic, readonly, retain) NSUUID *identifierForVendor; 

讨论

对于来自同一设备上运行的同一供应商的应用程序,此属性的值是相同的。 对于来自不同供应商的同一设备上的应用程序以及不同设备上的应用程序,不pipe供应商是什么,都会返回不同的值。

如果应用程序在后台运行,则此属性的值可能为零,用户在重新启动设备后第一次解锁设备。 如果该值为零,稍后再等待并获取该值。

此应用程序(或来自同一供应商的另一个应用程序)安装在iOS设备上时,此属性中的值保持不变。 当用户从设备上删除所有供应商的应用程序并随后重新安装其中的一个或多个应用程序时,值会更改。 因此,如果您的应用程序在任何位置存储此属性的值,则应优雅地处理标识符更改的情况。

可用性

 Available in iOS 6.0 and later. 

在UIDevice.h中声明

参考:

  • UIDevice类参考
  • UDIDreplace

你也可以使用NSUUID类的UUID类方法来创build一个唯一的ID。

NSUUID – UUID