identifierForVendor是不應該更改應用程序的重新安裝:identifierForVendor變化
而應用程序(或從相同的供應商另一個 應用)安裝在在該屬性的值保持不變iOS設備。當用戶從 設備中刪除所有供應商的應用程序並隨後重新安裝其中的一個或多個應用程序時,值 會更改。使用Xcode安裝測試版本時,或者在使用特設分發的設備上安裝應用程序時, 的值也會發生變化。因此,如果您的應用程序 在任何位置存儲此屬性的值,則應優雅地 處理標識符更改的情況。
https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor
不過,我剛剛與我們的應用商店現場應用的一個測試這一點。即使我們的許多其他應用程序仍安裝在設備上,如果我重新安裝應用程序A,每次從identifierForVendor返回的UUID都會更改。
它不是這樣的。
這用於工作。但在某些時候,UUID似乎開始改變「簡單重裝」(如上所述)。這是一個已知的錯誤?已知identifierForVendor與上面的文檔相比已被破壞?任何解決方法(除了將UUID保存到鑰匙串之外,因爲該方法會因iCloud同步而中斷)?
在KeyChain中保留identifierForVendor或自定義UUID。請參閱:[如何在iOS設備上卸載ios應用程序後在ios中保留identifierForVendor?](http://stackoverflow.com/questions/21878560/how-to-preserve-identifierforvendor-in-ios-after-uninstalling-ios-app- on-device%3E) –
讓我引用自己「除了將UUID保存到鑰匙串之外,因爲該方法與iCloud同步打破」。那麼,這種方法可以在某些情況下工作。這意味着它不適用於所有**的情況。 – Jonny
您可以使鑰匙串條目特定於設備(注意:我從WWDC視頻中回顧了這一點,並且尋找資源 - 我沒有必要自己明確地測試它)。 https://www.andyibanez.com/using-ios-keychain/和https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/index.html#//apple_ref/doc/constant_group/Keychain_Item_Accessibility_Constants –