Как получить уникальный идентификатор устройства в Swift?
Как я могу получить уникальный идентификатор устройства в Swift?
Мне нужен идентификатор для использования в базе данных и в качестве API-ключа для моего веб-сервиса в моем социальном приложении. Что-то, чтобы отслеживать ежедневное использование этого устройства и ограничивать его запросы к базе данных.
спасибо!
6 ответов:
вы можете использовать это (Swift 3):
UIDevice.current.identifierForVendor!.uuidString
для более старых версий:
UIDevice.currentDevice().identifierForVendor
или если вы хотите строку:
UIDevice.currentDevice().identifierForVendor!.UUIDString
Больше нет способа однозначно идентифицировать устройство после того, как пользователь удалил приложение(ы). В документации говорится:значение этого свойства остается неизменным, пока приложение (или другое приложение от того же поставщика) установлено на устройстве iOS. Значение изменяется, когда пользователь удаляет все приложения этого поставщика с устройства, а затем переустановит один или несколько из них.
Вы также можете прочитать эту статью Мэтта Томпсона для получения более подробной информации:
http://nshipster.com/uuid-udid-unique-identifier/обновление для Swift 4.1, вам нужно будет использовать:
UIDevice.current.identifierForVendor?.uuidString
на Swift 3.X последний рабочий код, легко использования;
let deviceID = UIDevice.current.identifierForVendor!.uuidString print(deviceID)
можно использовать devicecheck (в Swift 4) документация Apple
func sendEphemeralToken() { //check if DCDevice is available (iOS 11) //get the **ephemeral** token DCDevice.current.generateToken { (data, error) in guard let data = data else { return } //send **ephemeral** token to server to let token = data.base64EncodedString() //Alamofire.request("https://myServer/deviceToken" ... } }
типичное использование:
Как правило, API DeviceCheck используется для обеспечения того, чтобы новый пользователь еще не выкупил предложение под другим именем пользователя на том же устройстве.
требуется действие сервера:
Подробнее из статьи Santosh Botre-уникальный Идентификатор для устройств iOS
связанный сервер объединяет этот маркер с ключом аутентификации, который вы получаете от Apple, и использует результат для запроса доступа к битам для каждого устройства.
Swift 2.2
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let userDefaults = NSUserDefaults.standardUserDefaults() if userDefaults.objectForKey("ApplicationIdentifier") == nil { let UUID = NSUUID().UUIDString userDefaults.setObject(UUID, forKey: "ApplicationIdentifier") userDefaults.synchronize() } return true } //Retrieve print(NSUserDefaults.standardUserDefaults().valueForKey("ApplicationIdentifier")!)