SwiftUI显示应用名称、版本号等应用基本信息
SwiftUI显示应用名称、版本号等应用基本信息

SwiftUI显示应用名称、版本号等应用基本信息

在 SwiftUI 或任何 Swift 应用中,Bundle.main 提供了访问应用基本信息的方式,这些信息来自于 Info.plist 文件。可以显示的内容包括应用名称、版本号、构建号、包标识符等。

常用字段一览(通过 Bundle.main 获取)

1、应用名称(显示名):Info.plist键CFBundleDisplayName 或 CFBundleName,App 图标下方名称,示例:MyApp。

2、版本号(给用户看):CFBundleShortVersionString,显示给用户的版本号,示例:1.2.3。

3、构建号(开发内部使用):CFBundleVersion,显示每次构建自动增长,示例:42。

4、包名(标识符):CFBundleIdentifier,唯一的 bundle id,示例:com.example.MyApp。

5、执行文件名:CFBundleExecutable,主执行文件名,示例:MyApp。

6、App 所在目录路径:.bundlePath,应用包路径,示例:/Applications/MyApp.app。

使用示例

struct AppInfoView: View {
    var appName: String {
        Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
        ?? Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String
        ?? "App"
    }

    var version: String {
        Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
        ?? "1.0"
    }

    var build: String {
        Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
        ?? "1"
    }

    var body: some View {
        VStack(alignment: .leading, spacing: 8) {
            Text("应用名称:\(appName)")
            Text("版本号:v\(version)")
            Text("构建号:\(build)")
        }
        .padding()
    }
}

推荐扩展用法

extension Bundle {
    var appName: String {
        object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
        ?? object(forInfoDictionaryKey: "CFBundleName") as? String
        ?? "App"
    }

    var version: String {
        object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "1.0"
    }

    var build: String {
        object(forInfoDictionaryKey: "CFBundleVersion") as? String ?? "1"
    }

    var bundleIdentifier: String {
        bundleIdentifier ?? "Unknown"
    }
}

在SwiftUI中使用Bundle.main显示字段信息:

Text("当前版本:v\(Bundle.main.version) (Build \(Bundle.main.build))")

其他字段

也可以访问其他字段,只是很少用到。比如:

1、LSApplicationCategoryType:App 的分类(macOS App Store 用)。

2、NSHumanReadableCopyright:应用版权信息。

3、NSCameraUsageDescription:隐私权限描述。

4、UIRequiredDeviceCapabilities:设备能力需求。

这些字段可以通过 Bundle.main.object(forInfoDictionaryKey:) 动态读取。

配置版本号和构建号

在Xcode中,点击左上角 – TARGETS – General – Identity,配置版本号和构建号。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注