Я работаю над тем, чтобы API facebook работал для iOS, а для страницы регистрации FB требуется Bundle ID проекта. Как я могу получить эту информацию? Я кое-что читал о том, как получить его во время выполнения, но есть ли способ заставить Xcode сообщить мне эту информацию или она где-то хранится в plist. Я не использую идентификатор пакета по умолчанию, я помню, что устанавливал его при создании проекта.
Как получить идентификатор пакета?
Ответы (7)
Если вы пытаетесь получить его программно, вы можете использовать следующую строку кода:
цель С
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Свифт 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Он будет работать как для приложений iOS, так и для Mac. Удачи.
Для тех, кто использует Xcode >=7: выберите цель и перейдите на вкладку Общие. Идентификатор пакета находится в разделе Идентификация.
В Xcode 4 выберите свой проект, затем цель (у вас должна быть только одна), а затем вкладку «Информация». Там вы должны увидеть идентификатор пакета.
bundle ID
или идентификатор пакета идентифицирует приложение в экосистеме Apple. Apple советует использовать обратное доменное имя (обратную нотацию DNS) для его создания.
Например:
com.companyname
Идентификатор пакета — это строка в Info.plist
[About], которая требуется для любого 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(PRODUCT_BUNDLE_IDENTIFIER)
//Target Settings the mirror of Build Settings
General -> Bundle Identifier
Когда вы устанавливаете новую цель, вы обнаружите
Bundle Identifier = Organization Identifier + ProductName
Organization Identifier
не учитывается настройками сборки
Чтобы получить его программно
//Objective-C
[[NSBundle mainBundle] bundleIdentifier];
//Swift
Bundle.main.bundleIdentifier
Если вы создаете библиотеку, это может быть проблематично — это приложения, которые имеют идентификатор пакета. Однако вы, вероятно, можете запросить это программно, используя [NSBundle mainBundle]
, а затем [NSBundle bundleIdentifier]