Как получить идентификатор пакета?

Я работаю над тем, чтобы API facebook работал для iOS, а для страницы регистрации FB требуется Bundle ID проекта. Как я могу получить эту информацию? Я кое-что читал о том, как получить его во время выполнения, но есть ли способ заставить Xcode сообщить мне эту информацию или она где-то хранится в plist. Я не использую идентификатор пакета по умолчанию, я помню, что устанавливал его при создании проекта.


person jln646v    schedule 15.01.2012    source источник
comment
Идентификатор пакета должен появиться, когда вы нажмете на свой проект в Xcode и перейдете на вкладку «Информация». Это должно выглядеть примерно так: com.mycompany.appname   -  person CodaFi    schedule 16.01.2012


Ответы (7)


Если вы пытаетесь получить его программно, вы можете использовать следующую строку кода:

цель С

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

Свифт 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Он будет работать как для приложений iOS, так и для Mac. Удачи.

person Aks    schedule 08.09.2016
comment
это решение, которое я долго искал, спасибо - person Arafin Russell; 23.10.2019

Для тех, кто использует Xcode >=7: выберите цель и перейдите на вкладку Общие. Идентификатор пакета находится в разделе Идентификация.

person plátano plomo    schedule 27.10.2015
comment
что за общая вкладка? - person Romain Jouin; 10.11.2016
comment
@romainjouin ...выберите View › Navigators › Show Project Navigator. Выберите цель во всплывающем меню «Проект/Цели» или в разделе «Цели» на второй боковой панели, если она появится. Щелкните Общие... в этом документе - person plátano plomo; 12.11.2016

В Xcode 4 выберите свой проект, затем цель (у вас должна быть только одна), а затем вкладку «Информация». Там вы должны увидеть идентификатор пакета.

person Nikso    schedule 15.01.2012
comment
Спасибо, но проблема в том, что я создаю библиотеку, и когда я нажимаю на цель, у меня есть только настройки сборки, этапы сборки и правила сборки. Есть ли другой способ получить это? - person jln646v; 16.01.2012
comment
когда он говорит PRODUCT_NAME, вы должны заменить это? - person shim; 04.06.2013

Подробности

  • 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

введите описание изображения здесь

person Vasily Bodnarchuk    schedule 02.12.2019

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 не учитывается настройками сборки

[ProductName]

Чтобы получить его программно

//Objective-C
[[NSBundle mainBundle] bundleIdentifier];

//Swift
Bundle.main.bundleIdentifier

[Словарь]

person yoAlex5    schedule 09.04.2020

Вы можете узнать и изменить из вспомогательного файла => info.plist => Идентификатор пакета

Обычно это DNS-форма ex. com.companyname.appname

введите здесь описание изображения

person Avijit Nagare    schedule 25.09.2015

Если вы создаете библиотеку, это может быть проблематично — это приложения, которые имеют идентификатор пакета. Однако вы, вероятно, можете запросить это программно, используя [NSBundle mainBundle], а затем [NSBundle bundleIdentifier]

person James Turner    schedule 27.10.2015