[ios] 프로그래밍 방식으로 번들 식별자 얻기

앱 내에서 프로그래밍 방식으로 번들 식별자 문자열을 어떻게 얻을 수 있습니까?



답변

목표 -C

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


답변

[[NSBundle mainBundle] bundleIdentifier];

( 문서 )


답변

가치를 얻으려면 Core Foundation 접근법이 필요할 수 있습니다. ARC 예는 다음과 같습니다.

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


답변

Swift 3.0 에서 번들 식별자를 프로그래밍 방식으로 가져 오려면 :

스위프트 3.0

let bundle = Bundle.main.bundleIdentifier


답변

이 매크로를 사용하여 훨씬 짧게 만듭니다.

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

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

그래서 나는 다음과 같이 비교할 수 있습니다 :

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


답변

프로그래밍 방식으로 가져 오려고하면 아래 코드 줄을 사용할 수 있습니다.

목표 -C :

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

스위프트 3.0 :

let bundleIdentifier =  Bundle.main.bundleIdentifier

최신 빠른 업데이트 iOS 및 Mac 앱 모두에서 작동합니다.


답변