Lấy số nhận dạng gói theo chương trình


229

Làm cách nào tôi có thể nhận được một chuỗi Số nhận dạng gói theo chương trình từ trong Ứng dụng của mình?

Câu trả lời:


454

Mục tiêu-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
Câu trả lời này không giới hạn ở iOS. Nó cũng hoạt động cho các ứng dụng Mac.
Jonny

9
Trong Swift, sử dụnglet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber

1
. hữu ích. Cảm ơn những người cộng đồng tuyệt vời.
haxpor

2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth


2

Bạn có thể cần cách tiếp cận Core Foundation để có được giá trị. Ví dụ ARC là như sau:

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

2

Để nhận định danh gói theo chương trình trong Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

0

Tôi sử dụng các macro này để làm cho nó ngắn hơn nhiều:

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

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

vì vậy tôi chỉ có thể so sánh như thế này:

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

0

Nếu bạn đang cố gắng để có được nó bằng lập trình, bạn có thể sử dụng dòng mã dưới đây:

Mục tiêu-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Cập nhật cho swift mới nhất Nó sẽ hoạt động cho cả ứng dụng iOS và Mac.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.