Как получить идентификатор пакета?
Я работаю над тем, чтобы API для Facebook работал на iOS, и страница регистрации FB требует Bundle ID проекта. Как я могу получить эту информацию? Я читал кое-что о получении во время выполнения, но есть ли способ заставить XCode сообщить мне эту информацию, или это где-то хранится в списке. Я не использую идентификатор пакета по умолчанию, я помню, как настраивал его при создании проекта.
5 ответов
Если вы пытаетесь получить его программно, вы можете использовать следующую строку кода:
цель C
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Это будет работать как для iOS, так и для Mac. Удачи..
Для тех, кто использует Xcode >=7: выберите цель и нажмите вкладку General. Идентификатор пакета находится под Идентификацией.
Детали
- Xcode 11.2.1 (11B500), Swift 5.1
Программно
Решение 1
let bundleId = Bundle.main.bundleIdentifier
Решение 2
let bundleId = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String
Из Xcode
Решение 1
Решение 2
В Xcode 4 выберите ваш проект, затем цель (у вас должна быть только одна) и затем вкладку "Информация". Вы должны быть в состоянии увидеть идентификатор пакета там.
А bundle ID
или идентификатор пакета идентифицирует приложение в экосистеме Apple. Apple советует использовать обратное доменное имя (обратную нотацию DNS) для его создания.
Например:
com.companyname
Идентификатор пакета - это строка в Info.plist
[О], который требуется для любогоBundle
Чтобы установить его с помощью Xcode
//Info.plist
Bundle identifier
//by default it points on `$(PRODUCT_BUNDLE_IDENTIFIER)` which is you can setup in Build Settings
//Build Settings the mirror of Target Settings
Build Settings -> Product Bundle Identifier
//Target Settings the mirror of Build Settings
General -> Bundle Identifier
Чтобы получить это программно
//Objective-C
[[NSBundle mainBundle] bundleIdentifier];
//Swift
Bundle.main.bundleIdentifier
Вы можете узнать и изменить из вспомогательного файла => info.plist => Идентификатор пакета
Обычно это форма DNS ex. com.companyname.appname
Если вы создаете библиотеку, это может быть проблематично - это приложения, которые имеют идентификатор пакета. Тем не менее, вы можете запросить это программно, используя [NSBundle mainBundle]
а потом [NSBundle bundleIdentifier]