プログラムでバンドルIDを取得する


229

アプリ内からプログラムでバンドルIDの文字列を取得するにはどうすればよいですか?

回答:


454

Objective-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
この回答はiOSに限定されません。Macアプリでも動作します。
ジョニー2013年

9
Swiftで使用let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber

1
(あなたはこのコメントを削除できます)しかし、私は答えを読んでいる感覚が好きです、そしてコメントで、@ Jonny sやTim(これは別の完全な答えで見ることができます)のようなものを参照してください、それはまだ関連している他の何かにリンクしています有用。素晴らしいコミュニティの皆さんに感謝します。
haxpor 2015年

2
Swift3:Bundle.main.bundleIdentifier!
セバスチャンロス


2

価値を得るには、Core Foundationのアプローチが必要になる場合があります。ARCの例は次のとおりです。

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

2

Swift 3.0でバンドルIDをプログラムで取得するには:

Swift 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

プログラムで取得しようとしている場合は、以下のコード行を使用できます。

Objective-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

iOSとMacの両方のアプリで動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.