iosswiftuuiduniqueidentifier

How to get a unique device ID in Swift?


How can I get a device's unique ID in Swift?

I need an ID to use in the database and as the API-key for my web service in my social app. Something to keep track of this devices daily use and limit its queries to the database.


Solution

  • You can use this (Swift 3):

    UIDevice.current.identifierForVendor!.uuidString
    

    For older versions:

    UIDevice.currentDevice().identifierForVendor
    

    or if you want a string:

    UIDevice.currentDevice().identifierForVendor!.UUIDString
    


    There is no longer a way to uniquely identify a device after the user uninstalled the app(s). The documentation says:

    The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them.


    You may also want to read this article by Mattt Thompson for more details:
    http://nshipster.com/uuid-udid-unique-identifier/

    Update for Swift 4.1, you will need to use:

    UIDevice.current.identifierForVendor?.uuidString