2016-05-02 24 views
0

我一直在一個應用程序工作,此應用程序需要使用一個唯一的ID負責與服務器連接進行同步。如果這個ID會改變,我的應用程序將失去連接,所有重要的數據都將丟失。「identifierForVendor」會在iOS或xCode更新中更改嗎?

現在我使用「identifierForVendor」但這似乎不是在一定條件下是有用的。它在我在下面提到的某些情況下發生了變化,請檢查並提出一些建議以解決此問題。

"identifierForVendor" getting changed in the condition: 

1) Delete app and then reinstalled again using different vendor (always). 
2) Delete app and then reinstalled again using even same vendor (random). 
3) iOS and xCode update (xCode-7.3/iOS-9.3)(not sure about frequency but on my last update its changed). 

請幫我一把。

+0

等待,什麼是實際的問題?你實際上回答了你的問題(_Can'identifierForVendor'改變?_)。所以我猜你的實際問題是類似於「我應該使用什麼?」這取決於你的用例。您需要發佈您的需求和設計目標,以便我們可以幫助您。 – DarkDust

回答

1

是的,identifierForVendor在某些情況下可能會更改。

因此,您可以使用SSKeychain將您的unique ID存儲在KeyChain中。

SSKeychain.h, SSKeychain.m, SSKeychainQuery.h and SSKeychainQuery.m文件導入到您的項目中。

加上Security.framework

保存唯一ID:

[SSKeychain setPassword:@"AnyID" forService:@"AnyService" account:@"AnyUser"] 

檢索一個唯一的ID:

NSString *UniqueID = [SSKeychain passwordForService:@"AnyService" account:@"AnyUser"]; 

編輯(如DarkDust建議):

下載SSKeychainhttps://github.com/soffes/SSKeychain

+0

該要點不包含「SSKeychain」。 [這是GitHub項目。](https://github.com/soffes/SSKeychain)由於它支持CocoaPods,最好使用它來保持最新。 – DarkDust

+0

編輯...感謝@ DarkDust –

+0

如果我硬編碼 AnyID = AAA, AnyService = XXX, AnyUser = ZZZ, 這將是唯一的每個設備? 對於同一個設備它是否總是一樣(iOS的更新無關緊要,或者刪除並重新安裝應用程序)? – tauheed

相關問題