SwiftUI 获取AppIcon、AppName、AppVersion等信息
所属分类:ios | 发布于 2024-12-26
有时候需要在App内显示AppIcon和APPName,这些信息存储在Info.plist中,我们可以这样获取。
1、获取AppIcon
static var appIcon: String? {
guard let icons = Bundle.main.object(forInfoDictionaryKey: "CFBundleIcons") as? [String: Any],
let primaryIcon = icons["CFBundlePrimaryIcon"] as? [String: Any],
let iconFiles = primaryIcon["CFBundleIconFiles"] as? [String],
let iconFileName = iconFiles.last else {
return nil
}
return iconFileName
}
使用方法
if let appIcon = AppInfoKit.appIcon,
let appIconImage = UIImage(named: appIcon) {
Image(uiImage: appIconImage)
.clipShape(.rect(cornerRadius: 10))
}
2、获取AppName
static var appName: String {
if let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String {
return appName
} else if let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String {
return appName
} else {
return "unknown"
}
}
3、获取AppVersion
static var appVersion: String {
if let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String {
return appVersion
} else {
return "unknown"
}
}
4、获取buildNumber
static var buildNumber: String {
if let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String {
return buildNumber
} else {
return "unknown"
}
}
5、获取appLanguage
static var appLanguage: String {
let preferredLang = Bundle.main.preferredLocalizations.first! as NSString
return String(describing: preferredLang)
}
6、获取appTImezone
static var appTimezone: String {
return TimeZone.current.identifier
}