如何从 SwiftUI 中的 General/Targets 读取 Xcode 中的版本和构建
Posted
技术标签:
【中文标题】如何从 SwiftUI 中的 General/Targets 读取 Xcode 中的版本和构建【英文标题】:How to read Version & Build in Xcode from General/Targets in SwiftUI 【发布时间】:2020-08-01 19:16:32 【问题描述】:在我的第一个应用程序(我用 SwiftUI 编写)中,我想添加一个按钮来向我发送邮件以获取反馈、错误、...
该按钮完美无缺,但我想在此邮件中添加我的应用程序的当前版本和构建。它显示在General/Targets/Identity
。但我找不到这样做的方法。
Button(action:
if let url = URL(string: "mailto:mail@mymailadress.com?subject=MyApp%20Feedback&body=Hallo,%3Cbr%3Ei%20will%20tell%20you%20something%20about%20this%20app:%3Cbr%3E%3Cbr%3EVersion:%20\(AppVersionBuild)")
UIApplication.shared.open(url as URL, options: [:], completionHandler: nil)
)
HStack
Image(systemName: "envelope")
Text("send a mail to mail@mymailadress.com")
.padding(10)
.foregroundColor(.white)
.background(LinearGradient(gradient: Gradient(colors: [Color("GradientStart"), Color("GradientEnd")]), startPoint: .topLeading, endPoint: .bottomTrailing))
.cornerRadius(10, antialiased: false)
.shadow(radius: 10)
知道如何将版本放入邮件正文(变量,例如AppVersionBuild
)吗?
谢谢
【问题讨论】:
【参考方案1】:您可以创建一个返回版本和内部版本号的函数
func versionAndBuildNumber() -> String
let versionNumber = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
let buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String
if let versionNumber = versionNumber, let buildNumber = buildNumber
return "\(versionNumber) (\(buildNumber))"
else if let versionNumber = versionNumber
return versionNumber
else if let buildNumber = buildNumber
return buildNumber
else
return ""
并将\(AppVersionBuild)
替换为以下\(versionAndBuildNumber())
【讨论】:
以上是关于如何从 SwiftUI 中的 General/Targets 读取 Xcode 中的版本和构建的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SwiftUI 中的 NavigationView 中删除搜索栏?
SwiftUI:如何从核心数据中的 TextField 中保存值