如何在iOS/Objective C中为SDK设置版本号?

5
我正在使用Objective-C编程语言编写一个iOS SDK。我想知道在Xcode中是否有一个字段可以设置SDK的版本号。
在Objective-C中,是否有一种类似于iOS应用程序的方式来设置版本和构建号(例如:版本号:2.5.1,构建号:2.5.1.12)?
另外需要一种方法来检测这个版本号,以便我可以暴露一个API。
- (NSString *)getSDKVersion {
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString *majorVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    NSString *minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"];

    return [NSString stringWithFormat:@"SDK Version %@ (%@)", majorVersion, minorVersion];
}

-(NSString*)getSDKBuildVersion;

这将返回SDK版本和构建号。

使用: Xcode - 7.0(Beta 3版本)

谢谢您的提前帮助。


1
如果您的SDK有一个Info.plist文件,您可以将您的版本放在CFBundleShortVersionString键中,将您的构建号放在CFBundleVersion中。要检索它们:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"][[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] - ryancrunchi
@ryancrunchi更新了问题的实现。在执行上述API时,我得到了空响应。 - Ankit Jain
1
你可能需要创建自己的捆绑包(SDK的捆绑包),并使用 [NSBundle bundleWithIdentifier:@"id"]... 访问它。来自苹果文档的说明:此方法通常由框架和插件在运行时定位其自己的捆绑包。 - ryancrunchi
1个回答

3
您可以通过点击左侧的项目(Project)->右侧的常规(General)选项卡->身份(Identity)部分来设置版本和构建号。您将找到以下字段:Bundle Identifier, Version以及Build
要以编程方式获取值:
NSDictionary *infoDictionary = [[NSBundle mainBundle]infoDictionary];

NSString *version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSString *build = [infoDictionary objectForKey:kCFBundleVersionKey];

1
谢谢你的回复,但是当我们创建SDK项目时,一般选项卡将不会出现。我已经编辑了info.plist文件,但是我仍然无法使用“CFBundleShortVersionString”关键字获取版本号。 - Ankit Jain
@AnkitJain,你能找到设置自定义SDK版本的解决方案吗? - Vipulk617
为了让这个在我的框架中工作,我不得不用 [NSBundle bundleForClass:self.class] 替换 [NSBundle mainBundle] - Eric Lange

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接