// // QSLDeviceTool.swift // QuickSearchLocation // // Created by mac on 2024/4/10. // import Foundation import UIKit import AdSupport /// 设备各种信息 class QSLDeviceTool: NSObject { // MARK: 1、App 名称 /// App 名称 var appDisplayName: String { return (Bundle.main.infoDictionary!["CFBundleDisplayName"] as? String) ?? "" } // MARK: 2、App 平台 安卓为1 iOS为2 /// App 平台 var platform: Int { return 2; } // MARK: 3、渠道名称 /// 渠道名称 var channelName: String { return "appstore"; } // MARK: 4、版本 /// 版本 var OSVersion: String { return String.init(format: "%@%@", UIDevice.current.systemName, UIDevice.current.systemVersion) } // MARK: 5、包名 /// 包名 var packageName: String { return Bundle.appBundleIdentifier; } // MARK: 6、版本号 1.0.0 /// 版本号 var appVersionName: String { return Bundle.appVersion; } // MARK: 6、版本号 100 /// 版本号 var appVersionCode: String { let versionSubStrings = self.appDisplayName.components(separatedBy: ".") var versionCode = "" for subString in versionSubStrings { versionCode.append(subString) } if versionSubStrings.count < 3 { versionCode.append("0") } return versionCode } // MARK: 7、品牌 /// 品牌 var brand: String { return "Apple" } // MARK: 8、idfa /// idfa var idfa: String { return ASIdentifierManager.shared().advertisingIdentifier.uuidString; } // MARK: 8、idfv /// idfv var idfv: String { return UIDevice.current.identifierForVendor?.uuidString ?? ""; } // MARK: 9、型号 /// 型号 var model: 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))) } return identifier } }