当前位置: 首页 > 面试题库 >

如何用代码获取当前版本的iOS项目?

葛雨华
2023-03-14
问题内容

我希望能够将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



 类似资料:
  • 本文向大家介绍如何获取当前数据库版本?相关面试题,主要包含被问及如何获取当前数据库版本?时的应答技巧和注意事项,需要的朋友参考一下 使用 select version() 获取当前 MySQL 数据库版本。

  • 问题内容: 如何从代码块中获取电流? 仅具有: 我可以用代替一个函数,但是有内置功能吗? 问题答案: 使用os.Getenv 从文档: Getenv检索由键命名的环境变量的值。它返回值,如果不存在该变量,则该值为空。 例: Go 1.8+更新 Go 1.8具有通过go / build导出的默认GOPATH:

  • //MySQL,,mysql -v select version(); //Oracle select * from v$version;

  • 当存在依赖关系时,在ivy.xml中定义,例如: 在构建中.xml,我让常春藤检索它。然后,它会下载一个名称中包含版本 ID 的文件。例如,库/我的包-6.0.0.zip 我如何知道版本(6.0.0)或我的ANT构建中的全名,而不用手动/去重复ivy.xml中的版本? 我希望能够做这样的事情:

  • 本文向大家介绍PowerShell中查看当前版本、Windows版本、.NET版本信息的代码,包括了PowerShell中查看当前版本、Windows版本、.NET版本信息的代码的使用技巧和注意事项,需要的朋友参考一下 PowerShell查看当前版本、Windows版本、.NET版本信息 有很多cmdlet或者cmdlet的参数,在PowerShell不同的版本中,支持得不一样。所以,弄清楚当前

  • 本文向大家介绍IOS获取当前版本号 Bundle ID等信息的方法详解,包括了IOS获取当前版本号 Bundle ID等信息的方法详解的使用技巧和注意事项,需要的朋友参考一下  IOS获取当前版本号 Bundle ID等信息的方法 1:获取bundle Id信息:[[NSBundle mainBundle]bundleIdentifier]; 2:获取版本号:[[[NSBundle mainBun