Você pode usar isso (Swift 3):
UIDevice.current.identifierForVendor!.uuidString
Para versões mais antigas:
UIDevice.currentDevice().identifierForVendor
ou se você quiser uma string:
UIDevice.currentDevice().identifierForVendor!.UUIDString
Não há mais uma maneira de identificar exclusivamente um dispositivo depois que o usuário desinstalou o (s) aplicativo (s). A documentação diz:
O valor nessa propriedade permanece o mesmo enquanto o aplicativo (ou outro aplicativo do mesmo fornecedor) está instalado no dispositivo iOS. O valor muda quando o usuário exclui todos os aplicativos desse fornecedor do dispositivo e, posteriormente, reinstala um ou mais deles.
Você também pode ler este artigo de Mattt Thompson para obter mais detalhes:
http://nshipster.com/uuid-udid-unique-identifier/
Atualização para o Swift 4.1 , você precisará usar:
UIDevice.current.identifierForVendor?.uuidString