Erhalten Sie die Bundle-ID programmgesteuert


229

Wie kann ich programmgesteuert eine Zeichenfolge der Bundle-ID in meiner App abrufen?

Antworten:


454

Ziel 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

10
Diese Antwort ist nicht auf iOS beschränkt. Es funktioniert auch für Mac-Apps.
Jonny

9
Verwenden Sie in Swiftlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber

1
(Sie können diesen Kommentar löschen), aber ich liebe das Gefühl, die Antwort dann im Kommentar zu lesen, etwas wie @Jonny s und Tim zu sehen (obwohl Sie dies in einer anderen ganzen Antwort sehen können), es verlinkt auf etwas anderes, das noch relevant ist und nützlich. Danke für die großartigen Community-Leute.
Haxpor

2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth


2

Möglicherweise benötigen Sie den Core Foundation-Ansatz, um den Wert zu erhalten. Das ARC-Beispiel lautet wie folgt:

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

2

So programmieren Sie die Bundle-ID programmgesteuert in Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

0

Ich benutze diese Makros, um es viel kürzer zu machen:

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

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

also kann ich einfach so vergleichen:

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

0

Wenn Sie versuchen, es programmgesteuert abzurufen, können Sie die folgende Codezeile verwenden:

Ziel c:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Aktualisiert für die neueste Version Es funktioniert sowohl für iOS- als auch für Mac-Apps.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.