我是一名初級專業軟體開發人員。我正在開發具有每個用戶設備限制的應用程式,我們使用 UIDevice.current.identifierForVendor 來識別設備。不幸的是,我們在安裝和重新安裝應用程式時遇到了“達到設備限制”的問題。
根據 identifierForVendor 檔案:
當應用程式(或來自同一供應商的另一個應用程式)安裝在 iOS 設備上時,此屬性中的值保持不變。當用戶從設備中洗掉該供應商的所有應用程式并隨后重新安裝其中一個或多個應用程式時,該值會發生變化。
問題很明顯 - 洗掉并重新安裝應用程式后,我們有一個新的 identifierForVendor ,我們將其視為新設備。
根據檔案的另一部分:
通常,供應商由 App Store 提供的資料確定。如果應用程式不是從應用程式商店安裝的(例如企業應用程式和仍在開發中的應用程式),則供應商識別符號將根據應用程式的捆綁 ID 計算。
我有兩個問題:
- 當我們從 Xcode 或 TestFlight 安裝應用程式時會出現問題。當我們從 AppStore 安裝應用程式時,它也會出現嗎?
- 還有其他方法可以限制設備數量并確定設備嗎?
附注。我知道,已經有一些類似的問題,但在我看來答案并不詳盡,而且是幾年前的:)
uj5u.com熱心網友回復:
您可以嘗試使用Keychain來做到這一點:
- 產生
UUID().uuidString - 使用密鑰“UniqueDeveiceID”或其他東西,使用一些鑰匙串包裝器(例如KeychainAccess)將其保存到鑰匙串。
- 將生成的 UUID 發送到服務器(或其他)
總結:應用程式啟動后,只需檢查鍵的值是否UniqueDeveiceID存在。重新安裝后,鑰匙串不會清理,因此您必須有機會檢查它是重新安裝還是新注冊的設備。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/315660.html
