How to Find a Bundle Identifier

Success!
Success!

6 days ago: “So Ustream just released their viewer application in time to live stream the innauguration tomorrow at 10AM. The problem is that it only works on a WIFI connection, I’ll assume for now because of ATT no-streaming-video-over-3g restrictions. If that’s possible, never fear, VoIPover3G to the rescue! The only hurdle is figuring out Ustream Player’s bundle identifier to feed to the hack. The whole process, including the less-than-trivial bundle identifier location, is detailed here.”Today: So now we need to find a bundle identifier, but how? It’s really not that difficult, as it turns out. Mostly, it requires a phone with SSH (and so jailbroken), a plain text editor (not rich text, like TextEdit, you’ll need something else)(I use smultron (coral) since its open source), an SFTP client (on mac use Cyberduck, on windows, use winscp, both are only a google search away, since I figure if you care about this, you’ve probably got one already) and a little patience. Start by SSHing into the phone and moving to /User/Applications with

cd /User/Applications

if you just do an ‘ls’ here, you’ll get a whole long list of nonsensically named directories:

The contents of /User/Applications on the iPhone
The contents of /User/Applications on the iPhone

The trick is to instead use the command

ls -R

to RECURSIVELY list the directories. This has the side effect that it produces a whole bunch of gross nasty text on the screen. It has the benefit that you can simply hit Cmd+A, Cmd+C, and then, in a new document in Smultron, Cmd+P. All of a sudden you have a whole lot of searchable text! Just use the find feature of your text editor to search for the name of your application. In my case, I’m interested in finding the ustream application. I know it’s name is ustream player, so it should be no problem to use those words to find the .app:

Found!
Found!

Now we know exactly which folder we want. Now it’s time to switch it up. In the folder UStreamPlayer.app (yes, it’s actually a folder containing a bunch of other things) is a file called Info.plist. In this file, there’s a field called BundleIdentifier. Bingo. Here’s how to get it. Fire up your SFTP client and log into the phone. Change directories to the one you identified just above, then move into the (whatever).app. Download the Info.plist to any old place. I usually just use my desktop:

The target of our hunt.
The target of our hunt.

Now, you’ve just got to read it. I’m lucky: I’m on a mac and I have the developer tools installed. Reading a .plist is drop dead simple. On windows, it shouldn’t be too much worse. You’ve just got to open it with an editor that can do XML files. I think there exist plist readers for Windows as well, just search around. The alternative is that you can read the messy plain text: you’re hunting for something that looks most often like com.websitename.appname, or tv. or org. or any other tld. In my case, here’s the bundle identifier:

Success!
Success!

Now you’ve got what you were looking for. Use it to enable VoIPover3G specifically for that app or… well, I don’t know off hand of any other good uses for it! Oh well, You’ve got it, anyway.

That’s all!

6 Comments

  1. Amzz
    February 4, 2009

    nice post, i follow this simple method.
    i use to ssh, in all the .app folder we have .plist file, in that, all you have to find is CFBundleIdentifier, the key is Bundle Identifier

  2. February 4, 2009

    That’s true, but I think I remember doing that same thing, but running into the problem that, for some reason, in the various ‘Applications’ folders, I couldn’t actually find all of the apps installed on the phone, and I also seem to remember that, for example, uStream didn’t actually have the bundle identifier in that plist. The method I have above works all the time for any app.

  3. anon
    October 5, 2009

    I used this with eyetv but used vim via ssh. Id suggest a ls -R | grep (keyword) in the terminal. Ie, I used ls -R | grep -i eyetv to find the plist named com.elgato.eyetvphone.plist. Also grep -i elgato would have worked too. Takes out the guesswork on the Info.plist

  4. September 11, 2010

    […] a link to an awesome guide on how to find out for yourself if the the app isnt in the spreadsheet How to Find a Bundle Identifier alexwhittemore.com so an example of this is for the Phone icon. Bundles > com.apple.mobilephone then save as […]

  5. Big O
    January 12, 2011

    Thanks for the article. I used iFunBox, opened the file in notepad. Worked like a charm.

  6. T
    July 22, 2011

    Use Icon Thief from Cydia and it can grab all the icons, save them in proper bundle folders and email it off your device with just on button press.

Leave a Reply

Your email address will not be published. Required fields are marked *