Swift - 获取应用名称、应用版本、设备型号、系统版本等信息
有时我们在 App 中提交一些统计信息或者用户反馈信息时,为了能更好地进行分析,通常会附带上当前应用程序的名称、版本号、设备型号、以及设备系统版本。下面演示如何获取这些信息。
1,效果图
2,样例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
import UIKit
class ViewController : UIViewController {
override func viewDidLoad() {
super .viewDidLoad()
//应用程序信息
let infoDictionary = Bundle .main.infoDictionary!
let appDisplayName = infoDictionary[ "CFBundleDisplayName" ] //程序名称
let majorVersion = infoDictionary[ "CFBundleShortVersionString" ] //主程序版本号
let minorVersion = infoDictionary[ "CFBundleVersion" ] //版本号(内部标示)
let appVersion = majorVersion as ! String
//设备信息
let iosVersion = UIDevice .current.systemVersion //iOS版本
let identifierNumber = UIDevice .current.identifierForVendor //设备udid
let systemName = UIDevice .current.systemName //设备名称
let model = UIDevice .current.model //设备型号
let modelName = UIDevice .current.modelName //设备具体型号
let localizedModel = UIDevice .current.localizedModel //设备区域化型号如A1533
//打印信息
print ( "程序名称:\(appDisplayName)" )
print ( "主程序版本号:\(appVersion)" )
print ( "内部版本号:\(minorVersion)" )
print ( "iOS版本:\(iosVersion)" )
print ( "设备udid:\(identifierNumber)" )
print ( "设备名称:\(systemName)" )
print ( "设备型号:\(model)" )
print ( "设备具体型号:\(modelName)" )
print ( "设备区域化型号:\(localizedModel)" )
}
override func didReceiveMemoryWarning() {
super .didReceiveMemoryWarning()
}
}
//扩展UIDevice
extension UIDevice {
//获取设备具体详细的型号
var modelName: String {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror (reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce( "" ) { identifier, element in
guard let value = element.value as ? Int8 , value != 0 else { return identifier }
return identifier + String ( UnicodeScalar ( UInt8 (value)))
}
switch identifier {
case "iPod5,1" : return "iPod Touch 5"
case "iPod7,1" : return "iPod Touch 6"
case "iPhone3,1" , "iPhone3,2" , "iPhone3,3" : return "iPhone 4"
case "iPhone4,1" : return "iPhone 4s"
case "iPhone5,1" , "iPhone5,2" : return "iPhone 5"
case "iPhone5,3" , "iPhone5,4" : return "iPhone 5c"
case "iPhone6,1" , "iPhone6,2" : return "iPhone 5s"
case "iPhone7,2" : return "iPhone 6"
case "iPhone7,1" : return "iPhone 6 Plus"
case "iPhone8,1" : return "iPhone 6s"
case "iPhone8,2" : return "iPhone 6s Plus"
case "iPhone9,1" : return "iPhone 7 (CDMA)"
case "iPhone9,3" : return "iPhone 7 (GSM)"
case "iPhone9,2" : return "iPhone 7 Plus (CDMA)"
case "iPhone9,4" : return "iPhone 7 Plus (GSM)"
case "iPad2,1" , "iPad2,2" , "iPad2,3" , "iPad2,4" : return "iPad 2"
case "iPad3,1" , "iPad3,2" , "iPad3,3" : return "iPad 3"
case "iPad3,4" , "iPad3,5" , "iPad3,6" : return "iPad 4"
case "iPad4,1" , "iPad4,2" , "iPad4,3" : return "iPad Air"
case "iPad5,3" , "iPad5,4" : return "iPad Air 2"
case "iPad2,5" , "iPad2,6" , "iPad2,7" : return "iPad Mini"
case "iPad4,4" , "iPad4,5" , "iPad4,6" : return "iPad Mini 2"
case "iPad4,7" , "iPad4,8" , "iPad4,9" : return "iPad Mini 3"
case "iPad5,1" , "iPad5,2" : return "iPad Mini 4"
case "iPad6,7" , "iPad6,8" : return "iPad Pro"
case "AppleTV5,3" : return "Apple TV"
case "i386" , "x86_64" : return "Simulator"
default : return identifier
}
}
}
|
Swift - 获取应用名称、应用版本、设备型号、系统版本等信息相关推荐
- 获取设备型号、设备类型等信息
获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设备标识 ...
- iOS获取设备型号、设备类型等信息
iOS获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设 ...
- Android获取手机型号,系统版本,App版本号等信息
MainActivity如下: package cn.testgethandsetinfo; import android.os.Bundle; import android.text.TextUti ...
- iOS获取设备型号,运营商,网络信息
在 iOS开发中会经常遇到需要获取设备型号,运营商,网络信息来了解和分析用户信息及使用终端情况. 但是 iOS是不能直接获取设备型号的,需要调用C语言的API, 今天给大家带来目前所有苹果设备的型号获 ...
- vue项目中获取当前设备 操作系统及版本,设备型号,ip,地区信息
1.获取ip,地区信息 使用搜狐IP地址查询接口(?后边设置编码)须连网! http://pv.sohu.com/cityjson http://pv.sohu.com/cityjson?ie=utf ...
- 装服务器得时候选择系统版本,云服务器选择系统版本
云服务器选择系统版本 内容精选 换一换 云服务器的正常运行依赖于XEN Guest OS driver(PV driver)和KVM Guest OS driver(UVP VMTools),为了同时 ...
- 手机服务器版本是什么系统版本,查看系统版本-如何查看windows系统的详细版本号...
1.首先,我们打开系统中的计算机界面,在计算机界面中,点击选择"控制面版",然后在控制面板中点击选择"管理工具". 2.进入Windows管理工具界面以后,点击 ...
- linux家用系统版本,查看linux系统版本
篇一:linux下如何查看系统和内核版本 linux下如何查看系统和内核版本 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux ve ...
- kali linux查看版本,kali linux 系统版本的查看方法
kali linux 系统版本的查看方法 1. kali linux 系统版本查看 命令:cat /etc/issue 2. kali linux系统内核信息查看 命令:uname -a 以上这篇ka ...
最新文章
- 久其软件怎么样_久其软件助力中国电信顺利完成网络攻防演练
- android 输入锁屏密码错误,安卓系统手机锁屏密码输错被停用了如何解决
- springboot源码分析之环境属性构造过程1
- Centos7使用yum安装MySQL5.6的正确姿势
- Qt5.9使用QWebEngineView加载网页速度非常慢,问题解决
- InstallShield Build Error -1014: Cannot rename directory PATH to PATH\folder.Bak.
- java array iterator_java数组遍历——iterator和for方法
- 在Java EE 7上骑骆驼–带有Swagger文档的REST服务
- IPC 中 LPC、RPC 的区别和联系
- java jcsh执行linux命令,java jcsh执行linux命令
- CSS3单词及属性大全
- uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...
- TextView属性的静态使用与动态使用
- 程序员的职业素养---编码
- OneAPM 技术公开课:北京,北京!
- ffmpeg aac解码pcm
- java迷宫算法_迷宫求解算法(java版)
- Redis-使用redis-trib构建集群
- Rayson API 框架分析系列之2:API服务开发
- 全量查询与分页查询合二为一的思考
热门文章
- 扒一扒神经网络--NIN
- 什么是股权激励?股权激励的含义
- layui数据表格接口_layui数据表格实现重载数据表格功能(搜索功能)
- foxmail 添加 gmail账号的 具体设置参数
- javascript转帖备忘
- RedHat 7.5 7.6下载磁力链分享
- 数据库分库分表(sharding)系列(四) 多数据源的事务处理
- 使用vue-cli创建vue3+ts项目
- 海云安-防护越早,成本越低!开源软件安全治理需“左移”
- 【PM 产品】读人人都是产品经理有感 — Part one