Как «уникально идентифицировать» устройство iPhone? Как UDID устарел и UUID изменяется после переустановки приложения для того же поставщика? - PullRequest
0 голосов
/ 15 октября 2019

Я создаю приложение для iOS, в котором есть опция, где пользователь может оставить свой отзыв о приложении. Я хочу знать, что если один и тот же пользователь использует приложение с разными учетными записями для входа в систему на одном и том же устройстве и отправляет отзыв.

Но поскольку UDID устарел или его привилегия утрачена, UUID также изменяется для переустановки приложенияот того же производителя, так что это лучший способ добиться уникальности устройства iPhone.

Я также сгенерировал пользовательский UUID и сохранил его в связку ключей и извлекать его, он работает нормально, но это оптимизированное решение. ? Я использую класс keychainWrapper

private func generateUuid() -> String {
    let uuidRef: CFUUID = CFUUIDCreate(nil)
    let uuidStringRef: CFString = CFUUIDCreateString(nil, uuidRef)
    return uuidStringRef as String
}

private func identifyUniqueDevice() {

    let UNIQUE_KEY = "mySuperDuperUniqueId"
    let uniqueDeviceId: String? = KeychainWrapper.standard.string(forKey: UNIQUE_KEY)

    guard uniqueDeviceId != nil else {
        let uuid = generateUuid()
        let saveSuccessful: Bool = KeychainWrapper.standard.set(uuid, forKey: UNIQUE_KEY)
        if saveSuccessful {
            print(uniqueDeviceId)
        } else {
            fatalError("Unable to save uuid")
        }
        return
    }
}
...