如何在 Xcode 12 中从 Swift 访问 Info.plist 值

jay*_*boh 8 xcode build ios swift

我希望能够从我的 iOS 应用程序中访问 Info.plist 中的版本控制值,在 Xcode 12.5 中用 Swift 编写。有问题的键/值是:

CFBundleShortVersionString: $(MARKETING_VERSION)
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
Run Code Online (Sandbox Code Playgroud)

从构建设置中,两个 Info.plist 值分别包含“1.0”和“8”。我尝试过以下方法:

let appBundleVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
Run Code Online (Sandbox Code Playgroud)

如果我在 Info.plist 中有用户定义的键/值对,则该方法有效,但不适用于访问系统管理的构建设置。我如何访问这两个值?

谢谢。

jay*_*boh 11

答案已经隐含在我的问题中了。我在 Info.plist 文件中定义了两个用户定义的键/值对:

App_version_number: $(MARKETING_VERSION)
App_build_number: $(CURRENT_PROJECT_VERSION)
Run Code Online (Sandbox Code Playgroud)

并在代码中引用了这些:

let appBuildNumber = Bundle.main.object(forInfoDictionaryKey: "App_build_number") as? String
let appVersionNumber = Bundle.main.object(forInfoDictionaryKey: "App_version_number") as? String
Run Code Online (Sandbox Code Playgroud)

也许有一种直接的方法可以访问构建设置,但这种间接方法效果很好。