68

I am working on getting the facebook API working for iOS, and the FB registration page requires the Bundle ID of the project. How can I get this information? I read something about getting it at run time, but is there a way to get Xcode to tell me this information, or is it held in a plist somewhere. I am not using the default bundle id, I remember setting it while I created the project.

Léo Natan
  • 56,823
  • 9
  • 150
  • 195
vjuliano
  • 1,474
  • 2
  • 15
  • 29
  • 3
    The bundle ID should appear when you click on your project in Xcode and go to the 'info' tab. It should look something like "com.mycompany.appname" – CodaFi Jan 15 '12 at 20:45

7 Answers7

65

If you are trying to get it programmatically , you can use below line of code :

objective C

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

Swift 3.0 :

let bundleIdentifier =  Bundle.main.bundleIdentifier

It will work for both iOS and Mac apps Good luck..

mugx
  • 9,869
  • 3
  • 43
  • 55
Ash
  • 5,525
  • 1
  • 40
  • 34
36

For those using Xcode >=7: select your target and click the General tab. Bundle Identifier is found under Identity.

plátano plomo
  • 1,672
  • 1
  • 18
  • 26
  • what is the general tab ? – Romain Jouin Nov 10 '16 at 17:47
  • 4
    @romainjouin "...choose View > Navigators > Show Project Navigator. Choose the target from the Project/Targets pop-up menu or in the Targets section of the second sidebar if it appears. Click General..." from [this document](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html) – plátano plomo Nov 11 '16 at 23:19
16

Details

  • Xcode 11.2.1 (11B500), Swift 5.1

Programmatically

Solution 1

let bundleId = Bundle.main.bundleIdentifier

Solution 2

let bundleId = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String

From Xcode

Solution 1

enter image description here

Solution 2

enter image description here

Vasily Bodnarchuk
  • 24,482
  • 9
  • 132
  • 127
15

In Xcode 4, select your project, then your target (you should have only one) and then the 'Info' tab. You should be able to see the bundle identifier there.

bdash
  • 18,110
  • 1
  • 59
  • 91
Nikso
  • 1,124
  • 8
  • 7
  • 1
    Thanks, but the issue is I am building a library, and when I click on the target, I only have "Build Settings" "Build Phases" and "Build Rules". Is there another way to get this? – vjuliano Jan 16 '12 at 08:52
  • 4
    when it says PRODUCT_NAME do you have to replace that ? – shim Jun 03 '13 at 21:42
5

iOS Bundle ID(PRODUCT_BUNDLE_IDENTIFIER)

A bundle ID or bundle identifier identifies an application in Apple's ecosystem. Apple advice to use reverse domain name(reverse DNS notation) to create it.

For example:

com.companyname

Bundle identifier is a string in Info.plist[About] which is required for any Bundle

To set it using 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

When you setup a new target you find

Bundle Identifier = Organization Identifier + ProductName              

Organization Identifier is not take into account by Build Settings

[ProductName]

To get it programmatically

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

//Swift
Bundle.main.bundleIdentifier

[Vocabulary]

yoAlex5
  • 29,217
  • 8
  • 193
  • 205
2

You can find out and change from supporting file=> info.plist => Bundle identifier

It is generally DNS form ex. com.companyname.appname

enter image description here

Avijit Nagare
  • 8,482
  • 7
  • 39
  • 68
2

If you're build a library, this may be problematic - it's applications that have a bundle ID. However, your can probably query this programatically using [NSBundle mainBundle] and then [NSBundle bundleIdentifier]

James Turner
  • 2,425
  • 2
  • 19
  • 24