gpt4 book ai didi

ios - 如何在代码中获取我的 iOS 项目的当前版本?

转载 作者:IT老高 更新时间:2023-10-28 12:18:08 26 4
gpt4 key购买 nike

我希望能够将我的 iOS 项目/应用程序的当前版本作为 NSString 对象获取,而无需在某个文件中的某个位置定义常量。我不想在 2 个地方更改我的版本值。

当我在项目目标摘要中更新我的版本时,需要更新该值。

最佳答案

您可以通过以下方式获取版本号和内部版本号:

let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
let build = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as! String

或在 Objective-C 中

NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];
NSString * build = [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];

我在 UIApplication 的一个类别中有以下方法:

extension UIApplication {

static var appVersion: String {
return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
}

static var appBuild: String {
return Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as! String
}

static var versionBuild: String {
let version = appVersion, build = appBuild
return version == build ? "v\(version)" : "v\(version)(\(build))"
}
}

要点: https://gist.github.com/ashleymills/6ec9fce6d7ec2a11af9b


这是 Objective-C 中的等价物:

+ (NSString *) appVersion
{
return [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];
}

+ (NSString *) build
{
return [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];
}

+ (NSString *) versionBuild
{
NSString * version = [self appVersion];
NSString * build = [self build];

NSString * versionBuild = [NSString stringWithFormat: @"v%@", version];

if (![version isEqualToString: build]) {
versionBuild = [NSString stringWithFormat: @"%@(%@)", versionBuild, build];
}

return versionBuild;
}

要点: https://gist.github.com/ashleymills/c37efb46c9dbef73d5dd

关于ios - 如何在代码中获取我的 iOS 项目的当前版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com