Get name of iOS app from path - iphone

I'm developing an app for jailbroken iOS devices that collects statistics about installed apps (ideally stats about both App Store and Cydia apps). Given the path of an app, is there an easy and reliable way to get the name of the App (as it appears in the Springboard)? Or is there a better way, not using the path at all (ie, is the info centralized somewhere)?

Here is a link to a StackOverflow that shows how to get a bundle info plist value (In this case the version).
How can my iphone app detect its own version number?
I beleive the attribute you are looking for is CFBundleDisplayName.
Here is apples list of attributes you can obtain.
http://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1

Every app has an info plist that contains its name and icon. Just look inside the .app bundle.

Related

How do iOS processes get their name?

Is there a default way iOS names
Them? I'm trying to find some sort of pattern to link them to an app name/bundleID so I can retrieve that apps information from the App Store search API. From what I've seen many apps process names are simply their name (eg Dropbox, Skype) but I figure someone has a better idea
In the Info.plist of the App, the relevant key-pair name is CFBundleExecutable.
The default value is set to the Xcode project name (naturally, eg "Dropbox", "Skype", etc). Look at any app's Info.plist via Xcode or by opening up a packaged app.
Documentation for ${EXECUTABLE_NAME}: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931-CH3-SW71
Source: I built iHasApp, an app-detection framework, so I spent a lot of time looking into what you're interesting in doing.

How to submit Two binary(iPhone and iPad) files for same project in App Store?

I have created Map application for iPhone and I developed same Map application on iPad too by my client requirement. Now I have same Map app project but two .ipa files one for iPhone and another for iPad.
I have already put iPhone version on iTune and it showing status "waiting for review"
1>Now I want to put my iPad version app on iTune with the same project name. How this can be achieve?
2>What Setting should I do in plist file and with xib files?
If there is universal app iPhone/iPad then in app store we can see both iphone and iPad app having same project name...So in my case what steps should I follow. Plz suggest
You can't upload two binary versions of the same app under the same name.
You either have to make a universal app (meaning iPhone/iPad app in one app) or submit under another name.
Start reading this: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html
You can submit multiple apps from the same Xcode Project by using multiple Targets, and editing the Bundle ID suffix of each Target so that each Target has a unique Bundle ID. You might also want to change the Product name for each Target in the Build settings so that your apps will have different bundle file names.
Note that, unless the iPad version is different enough (uses iPad only APIs for instance) from the iPhone version, it has been reported that Apple might reject a nearly identical iPhone/iPad pair of apps and request that you submit a single Universal build instead.
If you wanted your iPhone and iPad project to be in the same app, you should have built it that way.
However, if you did specifically want a separate iPhone and iPad app, then you should make the difference clear in the names of each app.
There are many companies who have both iPhone and iPad apps on the appstore. Generally, the iPhone app is just called 'appName' and the iPad version is usually called 'appName for iPad'.
Examples of this are:-
Skype and Skype for iPad
Ebay and Ebay for iPad
If you want the application to have the exact same name in iTunes Connect, you will have to make it a universal app.
You can cancel the "waiting for review" and submit your universal binary instead:
Can I reject a binary that has already been submitted for review?
Yes. You are permitted to reject your binary, to remove it from the
Apple review queue, when your app is in one of the following iTunes
Connect states:
Waiting For Review
In Review
To reject your binary, simply click the Reject Binary button. After
the binary has been rejected, you can then indicate you are ready to
submit another binary through Application Loader, by clicking on the
Ready to Upload Binary button.
Please note that if you reject a binary that is Waiting For Review or
In Review, your review time will be reset and you will start over from
the beginning once you submit a new binary.
iTunes Connect FAQ
However, if you absolutely need to have two seperate applications, you can create a new app in iTunes Connect and name it for example "[your app] for iPad" or "[your app] HD" or something similar like a lot of apps you see on the store.
Are there any particular reasons you aren't submitting a universal application ?
It would have been better if it was a universal app.
In itunes Connect you cant create/re-use apps-name,sku number,bundle-identifier. You could submit a universal app as update.
If you still want multiple apps, Then you will have to create multiple apps in itunes connect with different name, sku number and bundle-id,
But note one thing the name of the application installed in the device is what you give on xcode, not the one in itunes connect. So I guess you could only give that much similarity.
PS if create a app with details{apps-name,sku number,bundle-identifier} and you delete without publishing also, you cant reuse these again.
So tell client the best(may be only possible) solution is Universal app.
if you have the same application for both iphone and ipad, for iphone app name will be - [appliction name], for ipad it should be - [application name ] HD

How is application ID used by Xcode when building/signing the application?

iOS Provisioning files make reference to the Apple application ID (of the form "A1A2A3A4A5"). Most often, the DNS form of the application is replaced with a star (*).
My understanding is that the provisioning profile is stored in the iOS development device and is not used by Xcode. Thus, when building/signing the application, how can Xcode include the app ID into the executable file ? The only information Xcode has is the "Bundle Identifier", which is of the form "com.mycompany.myapp" - but there is no App ID, thus there is no way to add the app ID at this stage.
Does anyone know how this works. I feel that many people use those tools (as I do) without really knowing how it's made inside.
Many Regards,
Apple92
An iPhone application is not just an executable, it's a bundle (like a directory) that contains the executable, but also resources (like nibs or images) and in particular contains a small plist manifest file with details about your application - including the application ID. The provisioning profile is also included in this application bundle.
A device also maintains a list of provisioning profiles it has installed, but the profiles can be in the application as well and are checked against the application plist file to make sure everything matches.
For anyone who may stumble upon this question, I give a lot of detailed context in my answer to this related question.
https://stackoverflow.com/a/20557213/117471
Basically it boils down to this:
A Bundle ID is a string that is defined in Xcode
An App ID is an object that lives in Developer Member Center. It is often confused with Bundle ID because the App ID Suffix parameter of the object (I'm trying to drive home the fact that App ID is not a string. Is it working?) matches the Bundle ID of your app.
The App ID does not exist in iTunes Connect, or Xcode. It is only in Developer Member Center.

Company name in info.plist file - iPhone

I am planning to release an iPhone app. Where can I set the company's name in the info.plist file?
UPDATE:
In addition to the company's name, I wanted to set the Product name and version.
Is iTunes Connect the only option? or we can do it in the project itself.
The name that appears under your application in the app store is set in iTunes connect. You can't set it per app... the name is a one time thing - you can't change this, unless you buy a new developer account!
You set the name that displays under the application icon on the home screen of your iphone in info.plist. This is the Bundle display name. The application title in the app store is set in itunes connect (and the version number - although you do have to specify a version number in XCode as well, and if the version number differs from XCode to ITunes connect - I've heard - your app will be rejected).
Just go through the process (like everyone else) and you'll understand.
I don't know if it's possible to set it in the Info.plist but you can in the Projects Settings.
everything you want, is here : http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/115-Configuring_Applications/configuring_applications.html

Updating resource files for iPhone app

I've developed a generic iPhone app, intended for customization via a myapp.cfg file. I've successfully deployed the app to my adhoc testers via iTunes. My question is, how do I update their myapp.cfg file via iTunes. In other words, if they edit the .cfg file on their Windows PC or Macbook, how do they get it into the apps bundle in the iPhone?
You'll need to provide your own mechanism to download the config file into the application's Documents area; as app bundles are effectively sealed by the code signing process there's no way to modify the bundle post facto. As you have no interface to iTunes you need to provide your own mechanism - you might choose to do something like OmniFocus which uses Bonjour to discover the computer from which it retrieves its sync settings.
Looking at it another way; why use a config file at all? Other iPhone applications use a settings bundle and the standard application preferences as recommended by Apple, why do something different? There's always a chance that you'll confuse the user.