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
}

 

 

 

文哥博客(https://wenge365.com)属于文野个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接