[ios] iOS에서 실행중인 애플리케이션의 이름을 얻는 방법

홈 화면의 아이콘 아래에있는 응용 프로그램 이름이 “My Awesome App”인 경우 런타임에 응용 프로그램 내에서 해당 문자열을 어떻게 얻습니까?



답변

나는 시도 할 것이다

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

아마도 여러분은 자신의 앱 이름을 알고 있고 그냥 사용할 수 있습니다.


답변

스위프트 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 ,“Bundle name”, 번들의 짧은 이름. 사용자가 볼 수 없습니다. 자세한 내용은 CFBundleName 을 참조하십시오. (권장, 현지화 가능)

CFBundleDisplayName ,“Bundle display name”, 사용자가 볼 수있는 번들 이름. Siri에서 사용되며 iOS의 홈 화면에 표시됩니다. 자세한 내용은 CFBundleDisplayName 을 참조하십시오. (필수, 현지화 가능)


답변

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


답변

배열 항목을 얻는 새로운 방법 인 Xcode 4.5를 좋아하기 때문입니다. 🙂

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


답변

Xamarin.iOS의 경우 다음을 사용합니다.

return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();


답변

#include <stdlib.h>

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


답변

스위프트 3/4

let appName =  Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String