Application name has .app as suffix in simulator - iphone

When I run my iPhone app on simulator it has app as suffix in the app name. I have entered only name of the app in Product Name in Build Settings and also in bundle display name and bundle name in info.plist.
For example, if app name was A.B.C. I have it as A.B.C.app in its name in simulator. The app was having correct name pre-iOS8 but it has started to happen in iOS8 with xcode6.

As #pankaj mention in comment "A.B.C." remove an .app suffix. But is shows as "A.B.C." (with dot on end). I ended up with something like this " A.B.C " (with spaces on start and end on the name).

Related

My iOS app has a + in its name. Bundle is invalid due to this. Need help resolving

I did find a couple of very similar or identical threads here but they seemed to end before full resolution.
My app runs fine on my device with no build error. I am trying to submit app for approval and I get the following error, "This bundle is invalid. The executable name, as reported by CFBundleExecutable in the info.plist file may not contain any of these characters ..... +". So I opened my info.plist file and changed the info.plist file executable name from the macro ${EXECUTABLE_NAME} to the name of my app without the +. I did a new archive but then get an error saying the "codesign failed with exit code 1".
In another thread I read to just change targets name removing the + from there and leaving the info.plist file with the macro for the executable name, restarting Xcode and then archiving again. That allowed me to archive but I received the same error in iTunes Connect.
I have been working on this all day and don't find the solution. Can anyone please point me in the right direction? Thank you for any help.
You have to change ${PRODUCT_NAME} in Build Settings.
And you have to set name for display at Bundle Display Name in Info.plist.
See here for more details:
Bundle Name, Executable Name, Product Name...anything else?
There are a few different ways to make this work but this seems like the easiest/fastest
First change the "Product Name", so that it does not contain any special characters - how to change Product Name
Next, I changed the "Bundle display name" (CFBundleDisplayName) and "Bundle name" (CFBundleName) in my Info.plist to be hardcoded to have the '+' in it rather than referencing the ${PRODUCT_NAME} variable.
If you have already created app and distribution profile in iTunesConnect then you should also change the "Bundle identifier" in Info.plist - hardcode it to whatever you entered in iTunesConnect rather than xxx.${PRODUCT_NAME:rfc1034identifier} variable (iTunesConnect bundle identifier is shown in an error message if you try to build an archive before changing it)
Finally, build your app and Apple should not complain about the character when you validate. Your app should still show up with the '+' sign on the homescreen when you run on a device because of the hardcoded bundle keys.
Clean your simulator and device
If building for iOS Simulator won't work after that ("error: failed to attach to process ID 0" message) then go to "IOS Simulator" menu bar and click "Reset Content and Settings…"
If running on your device doesn't work after that then delete the app from your iPhone/iPad and run it again
I left the Executable name as-is in the Info.plist because the ${EXECUTABLE_NAME} variable it references by default is comprised of the ${PRODUCT_NAME} and a couple of other variables that I did not want to mess with.
thanks to Nathan Welch who's answer was basis for this tutorial
double click the target and select the build settings tab.search for product name and change it to without + sign.as mentioned before, the bundle display name in info.plist can have the same name with + sign
You have to rebuild. You can't tamper with the bundle after it has been built.
1.This bundle is invalid : Make sure your using bundle id is available or deleted by some one and also open the distribution provision profile is created for app store status is valid or invalid.
2. ${EXECUTABLE_NAME} : please provide your app name with + in plist
3. codesign failed with exit code 1 : see this link and do like http://stackoverflow.com/questions/4842717/iphone-codesign-object-file-format-invalid-or-unsuitable

iOS App won't start after OTA deployment of the same version

We're distributing an iOS App over the air to our beta-testers. We've now noticed, that if a tester installs the exact same build of the app he already has on the system, the app won't start anymore. There are no provisioning warnings or anything like that. The screen just goes black for about 1/4 of a second and the app quits again. If we delete the app, the install will work fine after that. Also upgrading the app to a new build works fine. This only happens if we try to install the exact same build. Has anyone experienced something similar?
A reason of crash of a new version of the app is that the serialisation of objects in cache has changed. If it's the case, you may clean the cache at the first launch.
Another reason may be an old expired profile.
I had this same issue. It turns out that the issue was related to the naming of the Bundle ID and Product Name. The bundle ID suffix should match the product name exactly without spaces or special characters. Many people (including myself) have changed the product name to reflect the name that they wish to be shown on the iPad home screen. It turns out that this should not be done, and the proper method is to match the Product Name to the Bundle ID suffix, and then in the Info.plist, there is a property called "Bundle Display Name" that can be changed to reflect what will be shown on the iPad's app home screen. Once I made this change, the error went away in all of my apps.
For example:
Bundle ID:
com.company.AppName
Suffix:
AppName
Product Name (Build Settings):
AppName
Bundle Display Name (Info.plist):
App Name (this can be whatever you wish)

How is an iPhone app named in the store?

Does apple set the name depending on the submitted binary or can the name be set by the developer?
I changed my display name of my app but didnt want to recreate the project to change the old name. So my .app name is not the name I want to give it in the app store.
Reason for this is that during the development of my app someone submitted an app with the same name.
What should I do to solve this?
Since the app with name already exists there is no option then to choose new name.
Name given to app in code(bundle icon name ..) is one which the user see when he installs application to his iPhone from app store.
Name provided at the time of upload - for ex: blah application , if user searches blah in app store it will show your application.its like tag on which user searches the application.
hope this helps u.
You can change your iTunes App Name each time a new binary is submitted.
You can change your .app bundle name each time you upload a new binary (this is changed in the info.plist).
If the app is already in the App Store, you'll have to submit an update to change the app name(s).
In order to get the two to match, you need to upload a new compressed binary with an app name that at least resembles the iTunes App Name. Since you can only show a small amount of the name on the Springboard (app launch view on the device), a lot of people abbreviate or shorten the name.
As an example, say you have an app called "My Brand New App" in iTunes (since this name can be longer). Well, you'd wanna shorten that name or abbreviate it in the .app bundle to be something like "New App" or similar so the entire name would fit under the app icon without being truncated by the OS.

What's the difference between "bundle display name" and "bundle name" in cocoa application's info plist

Here is a good question:
Bundle Name, Executable Name, Product Name...anything else?
but I just wonder about the difference between "bundle display name" and "bundle name" in cocoa application's info plist.
I don't think any of the other answers concisely answers the question.
CFBundleDisplayName - displayed: below icon. According to docs, should be localized, but only if the app itself is localized, otherwise there will be some kind of penalty (if this is true in reality I cannot say)
CFBundleName - displayed: I have no idea. Docs suggest that it will be used in lists thus recommended max 16 characters, but for instance the Settings→General→Usage list of apps uses CFBundleDisplayName really. To date I have never figured out where exactly this one is used.
Oh, this is for iOS apps, can't speak for other OSes.
thanks for Wevah's answer. here is the descriptions for people who confused with this two constants.
CFBundleDisplayName
CFBundleDisplayName (String - iOS, Mac OS X) specifies the display name of the bundle. If you support localized names for your bundle, include this key in both your information property list file and in the InfoPlist.strings files of your language subdirectories. If you localize this key, you should also include a localized version of the CFBundleName key.
If you do not intend to localize your bundle, do not include this key in your Info.plist file. Inclusion of this key does not affect the display of the bundle name but does incur a performance penalty to search for localized versions of this key.
Before displaying a localized name for your bundle, the Finder compares the value of this key against the actual name of your bundle in the file system. If the two names match, the Finder proceeds to display the localized name from the appropriate InfoPlist.strings file of your bundle. If the names do not match, the Finder displays the file-system name.
For more information about display names in Mac OS X, see File System Overview.
CFBundleName
CFBundleName (String - iOS, Mac OS X) identifies the short name of the bundle. This name should be less than 16 characters long and be suitable for displaying in the menu bar and the application’s Info window. You can include this key in the InfoPlist.strings file of an appropriate .lproj subdirectory to provide localized values for it. If you localize this key, you should also include the key CFBundleDisplayName.
According to Apple,
Bundle display name :
The app name displayed on the iPhone home screen comes from the
CFBundleDisplayName (or "Bundle display name" as the human-readable
string in Xcode) entry of your iOS app’s Info.plist
Similarly, the app name you see in your WatchKit app's launch screen
and notifications comes from the CFBundleDisplayName of your WatchKit
app's Info.plist
Bundle name:
The Apple Watch app on the iPhone currently uses the bundle name (not
the bundle display name) of your iOS app, which is specified by the
CFBundleName (or "Bundle name") entry of its Info.plist
You can see other related screenshots and reach more info at Apple Developer page by clicking here.
From my experience:
CFBundleDisplayName is used in the grid of apps on iOS devices
CFBundleName is used in the list of apps stored in iTunes library
Only if Bundle Display Name (CFBundleDisplayName) is not specified, value of Bundle Name (CFBundleName) will be used to displayed under App Icon.
Please note that CFBundleDisplayName is localizable, and it should be used to set the App name shown in iOS Springboard menu & Mac OS X Applications / Mission Control.
In short, don't touch CFBundleName and leave its value as default, i.e. ${PRODUCT_NAME}.
Note that the bundle name is also used as prefix for HTTP user-agent.
CFBundleName is also used in system popups like approving web authentication services.

How do you set the name of the iPhone app?

I have released and updated a few apps now, but this is still not very clear.
The app name as it appears on the app store is set from iTunes connect. Where do you set the name of the app as it appears on the phone once it is installed?
I have tried and succeeded in setting it in 'Product Name', but when Product Name has a space in it, the binary file name has a space too, which is not allowed when you upload the binary.
Clarity on this issue would be great.
Any help is appreciated.
You can just manually remove the space in the binary's filename before you upload it to iTunes Connect. It doesn't affect your app's name when installed on devices.
In the Info.plist file you can set the name that appears on the iPhone screen. The setting you need is called "Bundle display name" and it starts out set to ${PRODUCT_NAME}. Set it to whatever you like.
If you want to change the name according to the users language, create a file called InfoPlist.strings and localize it. I've made a Japanese localization (ja) for my app and the file contains one line:
CFBundleDisplayName = "東京アート";
This means that users with their locale set to Japan see that name, and other users see the one in Info.plist
If you Get Info on the Target, you can also set the "Product Name", which is the name you end up with after building (the actual file). You can set it with no spaces. You can also just remove the space before you zip and upload.