2013-05-07 89 views
-1

我正在將一些數據存儲在plist文件中......並且我意識到它可以共享。有沒有一種方法可以使.plist文件設備特定?也許UDID或什麼?任何想法將不勝感激..是否有可能創建設備特定的.plist文件-iOS

+0

您是否在運行時創建了plist文件? – 2013-05-07 06:28:35

+0

是的,我是在購買第一款產品之後。 – user123 2013-05-07 06:35:22

回答

0

如果你不想讓別人看到你的.plist文件的內容,你可以使用encryption algorithms提供的iOS加密它們。 其他簡單的方法是將您的敏感數據存儲在鑰匙串中,或NSUserDefaults而不寫入文件,這將是非常設備特定的。祝你好運!

+0

感謝您的建議。我正在存儲購買產品的信息。即使我對它進行加密,它也不會有太大的區別,因爲解密算法在我的應用程序中是相同的。有人可以買東西,很容易分享plist文件..我不太確定鑰匙扣是否適合這個目的,但是我肯定會檢查出來的.. – user123 2013-05-07 06:32:41

+0

是的,那麼在你的情況下,'NSUserDefaults'或鑰匙串是走。 – 2013-05-07 09:43:35

+0

而且,對於每個設備,您可以使用不同的密鑰進行加密,例如,不推薦使用的UDID或唯一字符串,例如UUID。 – 2013-05-07 09:45:29

0

UDID是從5月1日2013年

禁止從iOS 6中開始有一個叫identifierForVendor另一種方法。您可以使用此方法在每個iOS設備中爲您的應用創建唯一標識符。

你可以把它想:

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

保存plist使用idForApp。這將是獨一無二的。

identifierForVendor

的字母數字字符串唯一標識的裝置,以應用程序的供應商 。 (只讀)

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

討論

該屬性的值是該來自相同的設備上運行的 同一供應商的應用程序是相同的。對於來自不同供應商的同一設備上的應用以及不同供應商的不同設備上的應用,返回不同值 。

如果應用程序在 後臺運行,在用戶在設備重新啓動後第一次解鎖設備 之前,此屬性的值可能爲零。如果該值爲零,請稍後再等待並獲得值 。

在iOS設備上安裝應用程序(或來自同一供應商的另一個 應用程序)時,此屬性中的值保持不變。當用戶從 設備中刪除所有供應商的應用程序並隨後重新安裝其中的一個或多個應用程序時,值 會更改。因此,如果您的應用程序 在任何地方存儲此屬性的值,您應該優雅地處理標識符更改的情況。

狀況

Available in iOS 6.0 and later. 

宣佈的UIDevice。^ h

參考:


您也可以使用NSUUID類的UUID類方法來創建一個唯一的ID。

NSUUID - UUID

+0

謝謝.. identifierForVendor和uniqueIdentifier看起來像返回不同的結果。如果有人在iOS 5上購買了某些東西,然後他將操作系統升級到6+,那麼這將不起作用。我對嗎? – user123 2013-05-07 07:33:23

+0

@ user968173是的。在iOS 6中,uniqueIdentifier不起作用。因此對於iOS 5,使用uniqueIdentifier並將值存儲在NSUserDefaults中。或者簡單地使用NSUUID類來創建唯一標識符並將其保存在數據庫中。 – 2013-05-07 08:59:40

相關問題