我将一些数据存储在 plist 文件中。我意识到它可以共享。有没有办法可以使 .plist 文件设备特定?也许是UDID之类的?任何想法将不胜感激..
2 回答
如果您不希望其他人看到您的 .plist 文件的内容,您可以使用 iOS 提供的加密算法对其进行加密。其他简单的方法是将您的敏感数据存储在钥匙串中,或者NSUserDefaults
不写入文件,这将是非常特定于设备的。祝你好运!
UDID 从 2013 年 5 月 1 日起被禁止。
从 iOS 6 开始,还有一种称为identifierForVendor
. 您可以使用此方法在每个 iOS 设备中为您的 App 创建唯一标识符。
你可以像这样得到它:
NSString *idForApp = [[UIDevice currentDevice] identifierForVendor];
保存您plist
使用的idForApp
. 这将是独一无二的。
供应商标识符
向应用程序供应商唯一标识设备的字母数字字符串。(只读)
@property(nonatomic, readonly, retain) NSUUID *identifierForVendor;
讨论
对于来自同一供应商并在同一设备上运行的应用,此属性的值相同。对于来自不同供应商的同一设备上的应用程序以及不同设备上的应用程序(无论供应商)返回不同的值。
如果应用程序在后台运行,在设备重启后用户第一次解锁设备之前,此属性的值可能为 nil。如果该值为 nil,则等待并稍后再次获取该值。
当应用程序(或来自同一供应商的另一个应用程序)安装在 iOS 设备上时,此属性中的值保持不变。当用户从设备中删除该供应商的所有应用程序并随后重新安装其中一个或多个应用程序时,该值会发生变化。因此,如果您的应用程序将此属性的值存储在任何地方,您应该优雅地处理标识符更改的情况。
可用性
Available in iOS 6.0 and later.
在 UIDevice.h 中声明
参考 :
您也可以使用 class 的UUID
class 方法NSUUID
来创建唯一 id。