以编程方式获取Bundle Identifier

时间:2012-01-16 16:33:25

标签: ios cocoa-touch

如何从我的应用程序中以编程方式获取Bundle Identifier的字符串?

6 个答案:

答案 0 :(得分:414)

目标-C

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 1.2

let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier

Swift 3.0

let bundleIdentifier = Bundle.main.bundleIdentifier

Xamarin.iOS

var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier

答案 1 :(得分:47)

[[NSBundle mainBundle] bundleIdentifier];

documentation

答案 2 :(得分:2)

您可能需要Core Foundation方法才能获得价值。 ARC示例如下:

NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
                                                                     (const void *)(@"CFBundleIdentifier"));

答案 3 :(得分:2)

以编程方式在 Swift 3.0 中获取捆绑包标识符:

  

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

答案 4 :(得分:0)

如果您尝试以编程方式获取它,则可以使用以下代码行:

目标-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 3.0:

让bundleIdentifier = Bundle.main.bundleIdentifier

针对最新的swift进行了更新它适用于iOS和Mac应用程序。

答案 5 :(得分:0)

我使用这些宏来缩短它的时间:

#define BUNDLEID    [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]

#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]

所以我可以这样比较:

if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
    //do this
}