swift获取设备型号

获取Apple设备信息的方法,经常会用到,没有什么技术含量,但是很麻烦,抽出来供大家使用,这是github的地址https://github.com/tiancanfei/ADDeviceTool,会实时更新,下面是代码:

public struct ADDeviceTool {
    //MARK: -  获取设备类型
    //deviceType设备类型获取地址https://www.theiphonewiki.com/wiki/Models
    
    public static func getDevieceType() -> String
    {
        var systemInfo = utsname()
        
        uname(&systemInfo)
        
        let deviceString = withUnsafePointer(to: &systemInfo.machine, { (ptr) -> String? in
            let deviceChars = unsafeBitCast(ptr, to: UnsafePointer<CChar>.self)
            return String.init(cString: deviceChars, encoding: .utf8)
        })
        
        let deviceType = [//AirPods(耳机)
                          "AirPods1,1" :  "AirPods",
                          //Apple TV
                          "AppleTV2,1" :  "Apple TV (2nd generation)",
                          "AppleTV3,1" :  "Apple TV (3rd generation)",
                          "AppleTV3,2" :  "Apple TV (3rd generation)",
                          "AppleTV5,3" :  "Apple TV (4th generation)",
                          "AppleTV6,2" :  "Apple TV 4K",
                          //Apple Watch(手表)
                          "Watch1,1" :  "Apple Watch (1st generation)",
                          "Watch1,2" :  "Apple Watch (1st generation)",
                          "Watch2,6" :  "Apple Watch Series 1",
                          "Watch2,7" :  "Apple Watch Series 1",
                          "Watch2,3" :  "Apple Watch Series 2",
                          "Watch2,4" :  "Apple Watch Series 2",
                          "Watch3,1" :  "Apple Watch Series 3",
                          "Watch3,2" :  "Apple Watch Series 3",
                          "Watch3,3" :  "Apple Watch Series 3",
                          "Watch3,4" :  "Apple Watch Series 3",
                          //HomePod(音响)
                          "AudioAccessory1,1" :  "HomePod",
                          //iPad
                          "iPad1,1"   :  "iPad1",
                          "iPad2,1"   :  "iPad2",
                          "iPad2,2"   :  "iPad2",
                          "iPad2,3"   :  "iPad2",
                          "iPad2,4"   :  "iPad2",
                          "iPad3,1"   :  "iPad3",
                          "iPad3,2"   :  "iPad3",
                          "iPad3,3"   :  "iPad3",
                          "iPad3,4"   :  "iPad4",
                          "iPad3,5"   :  "iPad4",
                          "iPad3,6"   :  "iPad4",
                          "iPad4,1"   :  "iPad Air",
                          "iPad4,2"   :  "iPad Air",
                          "iPad4,3"   :  "iPad Air",
                          "iPad5,3"   :  "iPad Air 2",
                          "iPad5,4"   :  "iPad Air 2",
                          "iPad6,7"   :  "iPad Pro (12.9-inch)",
                          "iPad6,8"   :  "iPad Pro (12.9-inch)",
                          "iPad6,3"   :  "iPad Pro (9.7-inch)",
                          "iPad6,4"   :  "iPad Pro (9.7-inch)",
                          "iPad6,11"  :  "iPad (5th generation)",
                          "iPad6,12"  :  "iPad (5th generation)",
                          "iPad7,1"   :  "iPad Pro (12.9-inch, 2nd generation)",
                          "iPad7,2"   :  "iPad Pro (12.9-inch, 2nd generation)",
                          "iPad7,3"   :  "iPad Pro (10.5-inch)",
                          "iPad7,4"   :  "iPad Pro (10.5-inch)",
                          //iPad mini
                          "iPad2,5"   :  "iPad mini",
                          "iPad2,6"   :  "iPad mini",
                          "iPad2,7"   :  "iPad mini",
                          "iPad4,4"   :  "iPad mini 2",
                          "iPad4,5"   :  "iPad mini 2",
                          "iPad4,6"   :  "iPad mini 2",
                          "iPad4,7"   :  "iPad mini 3",
                          "iPad4,8"   :  "iPad mini 3",
                          "iPad4,9"   :  "iPad mini 3",
                          "iPad5,2"   :  "iPad mini 4",
                          //iPhone(手机)
                          "iPhone1,1" :  "iPhone",
                          "iPhone1,2" :  "iPhone3G",
                          "iPhone2,1" :  "iPhone3GS",
                          "iPhone3,1" :  "iPhone4",
                          "iPhone3,2" :  "iPhone4",
                          "iPhone3,3" :  "iPhone4",
                          "iPhone4,1" :  "iPhone4S",
                          "iPhone5,1" :  "iPhone5",
                          "iPhone5,2" :  "iPhone5",
                          "iPhone5,3" :  "iPhone5C",
                          "iPhone5,4" :  "iPhone5C",
                          "iPhone6,1" :  "iPhone5S",
                          "iPhone6,2" :  "iPhone5S",
                          "iPhone7,2" :  "iPhone6",
                          "iPhone7,1" :  "iPhone6 Plus",
                          "iPhone8,1" :  "iPhone6s",
                          "iPhone8,2" :  "iPhone6s Plus",
                          "iPhone10,3" :  "iPhone X",
                          "iPhone10,6" :  "iPhone X",
                          //iPod
                          "iPod1,1"   :  "iPod touch",
                          "iPod2,1"   :  "iPod touch (2nd generation)",
                          "iPod3,1"   :  "iPod touch (3rd generation)",
                          "iPod4,1"   :  "iPod touch (4th generation)",
                          "iPod5,1"   :  "iPod touch (5th generation)",
                          "iPod7,1"   :  "iPod touch (6th generation)",
                          ]
        
        
        if let deviceStringKey = deviceString
        {
            if deviceStringKey.hasPrefix("x86")
            {
                return "iPhone模拟器,Mac"
            }
            else
            {
                if let deviceTypeString = deviceType[deviceStringKey]
                {
                    return deviceTypeString
                }
            }
        }

        return "iPhone新机型"
        
    }
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,738评论 25 709
  • 【版权免责声明】 转自 南山岳麓书院,版权归原作者所有。如涉及作品版权问题,请与本人联系。 把平时看到或项目用到的...
    上吊的豆腐阅读 4,547评论 0 8
  • 空间+服务+社群 总部位于上海虹桥临空经济园区, 是长宁区扶持重点创新...
    上海创合工社阅读 7,108评论 1 0
  • 我的偶像 我喜欢angelababy和鹿晗,很简单,因为有可能性格相像,爱好相像……
    雨落依美阅读 1,293评论 0 0
  • 我感觉自己处在人生低谷,最近几天很难提起精神,总是觉得很累。真的很难从这种状态里面走出来,只希望后面能够好好加油,...
    夜色漫漫阅读 955评论 0 0