बंडल पहचानकर्ता को प्रोग्रामेटिक रूप से प्राप्त करें


229

मैं अपने ऐप के भीतर प्रोग्राम से बंडल पहचानकर्ता की एक स्ट्रिंग कैसे प्राप्त कर सकता हूं?

जवाबों:


454

उद्देश्य सी

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

स्विफ्ट 1.2

let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier

स्विफ्ट 3.0

let bundleIdentifier = Bundle.main.bundleIdentifier

Xamarin.iOS

var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier

10
यह उत्तर केवल iOS तक सीमित नहीं है। यह मैक ऐप्स के लिए भी काम करता है।
जॉनी

9
स्विफ्ट में, उपयोग करेंlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
टिम कैमर

1
(आप इस टिप्पणी को हटा सकते हैं) लेकिन मुझे जवाब पढ़ने की भावना से प्यार है, तो टिप्पणी में देखें, @Jonny s और Tim जैसा कुछ देखें (हालाँकि आप इसे एक और पूरे उत्तर में देख सकते हैं), यह कुछ और से जोड़ता है जो अभी भी प्रासंगिक है और उपयोगी। महान समुदाय के लोगों के लिए धन्यवाद।
हेक्सपोर

2
स्विफ्ट 3:Bundle.main.bundleIdentifier!
सेबेस्टियन रोथ


2

मूल्य प्राप्त करने के लिए आपको कोर फाउंडेशन दृष्टिकोण की आवश्यकता हो सकती है। एआरसी उदाहरण निम्नलिखित है:

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

2

स्विफ्ट 3.0 में बंडल पहचानकर्ता को प्रोग्रामेटिक रूप से प्राप्त करने के लिए :

स्विफ्ट 3.0

let bundle = Bundle.main.bundleIdentifier

0

मैं इन मैक्रोज़ का उपयोग इसे बहुत छोटा बनाने के लिए करता हूं:

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

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

इसलिए मैं सिर्फ इस तरह की तुलना कर सकता हूं:

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

0

च आप इसे प्रोग्रामेटिक रूप से प्राप्त करने की कोशिश कर रहे हैं, आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

उद्देश्य सी:

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

स्विफ्ट 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

नवीनतम स्विफ्ट के लिए अपडेट किया गया यह आईओएस और मैक ऐप दोनों के लिए काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.