[Code Note] iOS-mobile phone version number, model, operating system version, unique device identifier, ios-version number 
 
 I. Code. 
 
 RootViewController. m 
 
#import "ViewController.h"
#import "sys / utsname.h"
@interface ViewController ()
@end
@implementation ViewController
-(void) viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    
    //version number
    NSDictionary * infoDic = [[NSBundle mainBundle] infoDictionary];
    NSString * appVersion = [infoDic objectForKey: @ "CFBundleVersion"];
    NSLog (@ "--- appVersion ---% @", appVersion);
    
    //model
    NSString * deviceStr = [NSString stringWithFormat: @ "% @", [self deviceString]];
    NSLog (@ "--- deviceStr ---% @-", deviceStr);
    
    // OS version
    NSString * phoneVersion = [[UIDevice currentDevice] systemVersion];
    NSLog (@ "--- phoneVersion-% @", phoneVersion);
    
    // device unique identification
    NSString * uuid = [[UIDevice currentDevice] .identifierForVendor UUIDString];
    NSLog (@ "---- uuid-% @", uuid);
    
}
// Mobile phone model
-(NSString *) deviceString
{
    // #import "sys / utsname.h" required
    struct utsname systemInfo;
    uname (& systemInfo);
    NSString * deviceString = [NSString stringWithCString: systemInfo.machine encoding: NSUTF8StringEncoding];
    
    if ([deviceString isEqualToString: @ "iPhone1,1"]) return @ "iPhone 1G";
    if ([deviceString isEqualToString: @ "iPhone1,2"]) return @ "iPhone 3G";
    if ([deviceString isEqualToString: @ "iPhone2,1"]) return @ "iPhone 3GS";
    if ([deviceString isEqualToString: @ "iPhone3,1"]) return @ "iPhone 4";
    if ([deviceString isEqualToString: @ "iPhone4,1"]) return @ "iPhone 4S";
    if ([deviceString isEqualToString: @ "iPhone5,1"]) return @ "iPhone 5";
    if ([deviceString isEqualToString: @ "iPhone5,2"]) return @ "iPhone 5";
    if ([deviceString isEqualToString: @ "iPhone5,3"]) return @ "iPhone 5c";
    if ([deviceString isEqualToString: @ "iPhone5,4"]) return @ "iPhone 5c";
    if ([deviceString isEqualToString: @ "iPhone6,1"]) return @ "iPhone 5s";
    if ([deviceString isEqualToString: @ "iPhone6,2"]) return @ "iPhone 5s";
    if ([deviceString isEqualToString: @ "iPhone7,2"]) return @ "iPhone 6";
    if ([deviceString isEqualToString: @ "iPhone7,1"]) return @ "iPhone 6p";
    if ([deviceString isEqualToString: @ "iPhone3,2"]) return @ "Verizon iPhone 4";
    if ([deviceString isEqualToString: @ "iPod1,1"]) return @ "iPod Touch 1G";
    if ([deviceString isEqualToString: @ "iPod2,1"]) return @ "iPod Touch 2G";
    if ([deviceString isEqualToString: @ "iPod3,1"]) return @ "iPod Touch 3G";
    if ([deviceString isEqualToString: @ "iPod4,1"]) return @ "iPod Touch 4G";
    if ([deviceString isEqualToString: @ "iPad1,1"]) return @ "iPad";
    if ([deviceString isEqualToString: @ "iPad2,1"]) return @ "iPad 2 (WiFi)";
    if ([deviceString isEqualToString: @ "iPad2,2"]) return @ "iPad 2 (GSM)";
    if ([deviceString isEqualToString: @ "iPad2,3"]) return @ "iPad 2 (CDMA)";
    if ([deviceString isEqualToString: @ "i386"]) return @ "Simulator";
    if ([deviceString isEqualToString: @ "x86_64"]) return @ "Simulator";
    // NSLog (@ "NOTE: Unknown device type:% @", deviceString);
    return deviceString;
}
-(void) didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end
 
   
 
 2. output. 
 
2015-10-23 12: 01: 43.093 Mobile phone version number, model, operating system version, device unique identifier [7151: 176776] --- appVersion --- 1
2015-10-23 12: 01: 43.093 Phone version number, model, operating system version, device unique identifier [7151: 176776] --- deviceStr --- Simulator--
2015-10-23 12: 01: 43.094 Phone version number, model, operating system version, device unique identifier [7151: 176776] --- phoneVersion--8.4
2015-10-23 12: 01: 43.094 Phone version number, model, operating system version, device unique identifier [7151: 176776] ---- uuid-36995AA5-DAC5-48E9-9C2E-088B1927EC6C