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


229

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

답변:


454

목표 -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

10
이 답변은 iOS에만 국한되지 않습니다. Mac 앱에서도 작동합니다.
Jonny

9
스위프트에서 사용let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
팀 캠버

1
(이 주석을 삭제할 수는 있지만) 답을 읽는 느낌을 좋아합니다. 댓글에서 @Jonny s 및 Tim (다른 전체 답으로 볼 수는 있지만)과 관련이 있습니다. 유능한. 훌륭한 커뮤니티 여러분 감사합니다.
haxpor

2
Swift3 :Bundle.main.bundleIdentifier!
Sebastian Roth


2

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

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

2

Swift 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

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

목표 -C :

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

스위프트 3.0 :

let bundleIdentifier =  Bundle.main.bundleIdentifier

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.