web-dev-qa-db-ja.com

iOSで実行中のアプリケーションの名前を取得する方法

ホーム画面のアイコンの下にあるアプリケーション名が「My Awesome App」である場合、実行時にアプリケーション内でその文字列を取得するにはどうすればよいですか?

72
Jonathan

やってみたい

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];

おそらくあなたはあなた自身のアプリの名前を知っていて、それを使うことができるでしょう...

130
David Dunham

スイフト3および4

Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""


スイフト2.2

NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")


「CFBundleName」および「CFBundleDisplayName」の詳細

以下は Core Foundation Keysに関するAppleのドキュメント

CFBundleName、「バンドル名」、バンドルの短縮名。ユーザーに表示されることを意図していません。詳細については、 CFBundleName を参照してください。 (推奨、ローカライズ可能)

CFBundleDisplayName、「Bundle display name」、バンドルのユーザーに表示される名前。 Siri=によって使用され、iOSのホーム画面に表示されます。詳細は CFBundleDisplayName を参照してください。(必須、ローカライズ可能)

21
Mobile Dan
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
19
user4297313

配列項目を取得するXcode 4.5の新しい方法が大好きだからです。 :)

- (NSString*)project_getAppName {
    return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
14
Franck

Xamarin.iOSの使用:

return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();
7
Kraig McConaghy
#include <stdlib.h>

// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];
6

スイフト3/4

let appName =  Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
5
Jess
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];

これは良い投稿です 探しているものの例。 OPは何も受け入れませんでした。これは残念ですが、答えは役に立ちます。

3
Billy Coover

Swift

let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
3
mpatzer

注意

アプリ名を別の言語でローカライズする場合は、ブローコードを使用して、真のローカライズされた表示名を取得する必要があります。

Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""

以上打撃:

Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
0
yuanjilee