My app targets iphone, but obviously it can also be installed on iPad.
On iPhone it uses the correct icon image; on iPad 2, it also uses the correct icon.
However on iPad 3, instead of using icon as icon, it uses my launch image as icon. Is this the usual behaviour on iPad 3? or is my setting wrong? (I uses the latest SDK, and targets iOS 5.0, if this matters)
Update
I attached the plist file below. I guess I can understand what's wrong... Default@2x.png is the name of the launching image. What puzzles me is that, this does not match what I see in Xcode on the "Summary" screen though. In Xcode on the summary screen:
Here is the plist file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>SOF_app_icon.png</string>
<string>Default@2x.png</string>
</array>
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>com.overwaitea.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
<string>MainWindow</string>
<key>NSZombieEnabled</key>
<false/>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
<key>UIFileSharingEnabled</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>location-services</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>corelocation</key>
<string>YES</string>
</dict>
</plist>
It uses the launch image (i.e. the image displayed while your app is still loading after launch)? That doesn't make any sense. It certainly isn't the normal behavior, and I would guess that you have made a mistake in your Info.plist
icon entries.
Note that you need to supply a 2x icon for iPad 3... see the cornucopia of information that Apple supplies.
If you post a copy of your Info.plist (with any sensitive information redacted), along with your icon file names, we can probably nail down exactly what's going wrong.
As a final note, I have noticed that development copies of apps can get slightly out of whack vis-a-vis assets such as icons, seemingly because Xcode is trying to decrease launch time by only copying assets it thinks have changed. For this reason, it's probably a good idea to actually delete the app from the device/simulator and reinstall from scratch just to make sure you aren't seeing stale information.
EDIT: Thanks for posting the Info.plist. This clears up some things.
Let's start with the line:
<string>Default@2x.png</string>
Do you see that, inside your icon files setting, this is telling iOS to use your launch image as an icon? I'm guessing this was a typo, but I want to make sure you aren't confusing what the different plist keys are for.
Had the same problem All icon files added to the iphone project (including icon-72.png, icon-72@2x.png, Icon-Small-50.png, Icon-Small-50@2x.png).
Than added the iPad files manually to the info.plist file. It showed that order matters. Putting them at the end didn't work. My order is now Icon.png Icon@2x.png Icon-72.png Icon-72@2x.png and that worked for me.
For the record, Xcode 4.3.1 uses CFBundleIconFiles 3 and 4 for the launch images for apps targeting the iPhone. I cleared the launch images in the summary window and deleted the items in info.plist to be sure I wasn't the one causing the problem, and Xcode always set the launch images the same slots when re-added.
Change
<string>SOF_app_icon.png</string>
<string>Default@2x.png</string>
to
<string>SOF_app_icon.png</string>
<string>SOF_app_icon@2x.png</string>
How you have it configured is telling the device to set the retina icon as the retina version of your "Default" image.
To clarify "Default.png and Default@2x.png" are the standard names for your launch (splash) images.
Solution is simple,
In your plist->icon files->
Default.png
and Default@2x.png
may be added ! Just remove it from pList,
It Works