172

If you open Settings -> General -> About, it'll say Bob's iPhone at the top of the screen. How do you programmatically grab that name?

Ali Abbas
  • 4,247
  • 1
  • 22
  • 40
Brandon O'Rourke
  • 24,165
  • 16
  • 57
  • 58

12 Answers12

222

From the UIDevice class:

Swift version:

UIDevice.current.name

Objective-C version:

[[UIDevice currentDevice] name];

The UIDevice is a class that provides information about the iPhone or iPod Touch device.

Some of the information provided by UIDevice is static, such as device name or system version.

source: http://servin.com/iphone/uidevice/iPhone-UIDevice.html

Offical Documentation: Apple Developer Documentation > UIDevice Class Reference

Nikandr Marhal
  • 1,230
  • 1
  • 12
  • 12
Frank V
  • 25,141
  • 34
  • 106
  • 144
  • 2
    Be careful: the tutorial at that link, while quite useful, is aimed at OS 2.2, and uses some methods that are deprecated in 3.0. – Tim Jul 08 '09 at 19:49
  • @Tim: You are absolutely right. I didn't think of that. Though, I wasn't suggesting the tutorial; I was simply providing my source of information plus a source for more information. – Frank V Jul 08 '09 at 19:58
  • @FrankV What permissions should I request from the user in order to get myMusicAppName to change his Iphone name? How do I do that in Swift? Thank you – bibscy Jul 10 '19 at 10:01
182

In addition to the above answer, this is the actual code:

[[UIDevice currentDevice] name];

Andreas Ley
  • 9,109
  • 1
  • 47
  • 57
Stickley
  • 4,561
  • 3
  • 30
  • 29
110

Remember: import UIKit

Swift:

UIDevice.currentDevice().name

Swift 3, 4, 5:

UIDevice.current.name
Byron Coetsee
  • 3,533
  • 5
  • 20
  • 31
14

Here is class structure of UIDevice

+ (UIDevice *)currentDevice;

@property(nonatomic,readonly,strong) NSString    *name;              // e.g. "My iPhone"
@property(nonatomic,readonly,strong) NSString    *model;             // e.g. @"iPhone", @"iPod touch"
@property(nonatomic,readonly,strong) NSString    *localizedModel;    // localized version of model
@property(nonatomic,readonly,strong) NSString    *systemName;        // e.g. @"iOS"
@property(nonatomic,readonly,strong) NSString    *systemVersion;
mfaani
  • 33,269
  • 19
  • 164
  • 293
Usman Nisar
  • 3,031
  • 33
  • 41
8

For swift4.0 and above used below code:

    let udid = UIDevice.current.identifierForVendor?.uuidString
    let name = UIDevice.current.name
    let version = UIDevice.current.systemVersion
    let modelName = UIDevice.current.model
    let osName = UIDevice.current.systemName
    let localized = UIDevice.current.localizedModel
    
    print(udid ?? "") // ABCDEF01-0123-ABCD-0123-ABCDEF012345
    print(name)       // Name's iPhone
    print(version)    // 14.5
    print(modelName)  // iPhone
    print(osName)     // iOS
    print(localized)  // iPhone
Horacio
  • 1,794
  • 1
  • 16
  • 23
Kiran Patil
  • 402
  • 5
  • 13
8

Unfortunately from iOS 16 onwards you need a special entitlement. You can request it here: https://developer.apple.com/contact/request/user-assigned-device-name/ i

pawisoon
  • 1,427
  • 1
  • 15
  • 20
6

For xamarin user, use this

UIKit.UIDevice.CurrentDevice.Name
Tushar patel
  • 3,279
  • 3
  • 27
  • 30
6

For Swift 4+ versions, please use the below code:

UIDevice.current.name
Paul Roub
  • 36,322
  • 27
  • 84
  • 93
Neeraj Shukla
  • 295
  • 3
  • 9
4

To get an iPhone's device name programmatically

 UIDevice *deviceInfo = [UIDevice currentDevice];

 NSLog(@"Device name:  %@", deviceInfo.name); 

// Device name: my iPod

pkamb
  • 33,281
  • 23
  • 160
  • 191
Teja Kumar Bethina
  • 3,486
  • 26
  • 34
4

Device Name would not work out of Box now, Need to have a special entitlement.

Entitlement : com.apple.developer.device-information.user-assigned-device-name

Doc : https://developer.apple.com/forums/thread/708275

Official : https://developer.apple.com/documentation/uikit/uidevice/1620015-name

1

In Unity, using C#:

SystemInfo.deviceName;
Ian
  • 27
  • 1
0

As of iOS 16 name cannot be used for that and unfortunately I couldn't find an alternative. From UIKit.UIDevice:

open var name: String { get } // Synonym for model. Prior to iOS 16, user-assigned device name (e.g. @"My iPhone").
grabz
  • 69
  • 6