【问题标题】:How to set version number for SDK in iOS/Objective C?如何在 iOS/Objective C 中设置 SDK 的版本号?
【发布时间】:2015-07-21 12:31:40
【问题描述】:

我正在使用 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 版本)

提前致谢。

【问题讨论】:

  • 如果您的 SDK 有 Info.plist 文件,您可以将您的版本放在 CFBundleShortVersionString 键中,并将您的内部版本号放在 CFBundleVersion 中。要检索它们:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"][[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]
  • @ryancrunchi 通过实施更新了问题。在执行上述 API 时,我得到空响应。
  • 您可能必须创建自己的包(SDK 的包)并使用[NSBundle bundleWithIdentifier:@"id"]... 访问它。来自苹果的文档:This method is typically used by frameworks and plug-ins to locate their own bundle at runtime

标签: ios objective-c sdk version xcode7-beta3


【解决方案1】:

您可以在项目(左侧)-> 常规选项卡(右侧)-> 身份中设置版本和内部版本号部分。您将找到以下字段:Bundle IdentifierVersionBuild

以编程方式获取值:

NSDictionary *infoDictionary = [[NSBundle mainBundle]infoDictionary];

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

【讨论】:

  • 谢谢,但是当我们创建 SDK 项目时,常规选项卡将不存在。而且我已经编辑了 info.Plist 文件,但我仍然无法使用“CFBundleShortVersionString”键获取版本号。
  • @AnkitJain 你能找到设置自定义 sdk 版本的解决方案吗?
  • 为了在我的框架中进行这项工作,我不得不将 [NSBundle mainBundle] 替换为 [NSBundle bundleForClass:self.class]
猜你喜欢
  • 2017-10-13
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
相关资源
最近更新 更多