I've created an application for iPhone with icon versions for retina and no-retina display (icon#2x.png and icon.png).
Whenever I try to install this application on an iPad 3 a part of Default#2x.png is used instead of icon#2x.png.
Have i to upload specific icon for iPad ? and in this case where!? from Xcode 4.3.2 I see only 2 spaces to include icons, but reserved for iPhone version. I suppose that i need to create a new voice into plist file... but I'm not sure and documentation didn't help me.
I ran into the same problem. I created the resource files Icon-72.png and Icon-72#2x.png in the root of the bundle and added them to "Icon files" in the Info page of the target (Info.plist). Strangely, this didn't do the trick.
My final solution was to convert the target temporarily into an universal app, drag the iPad icons into the corresponding slots of the target's summary page and build it. After that, revert the target to an iPhone/iPod touch app, clean it, built it again.
Interestingly, this seems to work.
Old question, but with Xcode 6.3, if you use assets catalogs, select AppIcon, tick iPad (for iOS 7 and up) and add your 76x76 and 152x152 icons to the catalog
I would create 2 more icons called
icon~ipad.png
icon#2x~ipad.png
The first one will allow for iPad 1/2, and the second one will allow for Retina iPads (iPad 3).
Adding those 2 icons may be enough. Also, try a Clean & Rebuild as Luke said.
Hope this helps =)
I think you should use Icon-72. i used that
When determining the appropriate App-Icon the OS searches the "best fitting size" Icon in the CFBundleIconFiles array or the CFBundleIcons in the Info.plist. If the Default(#2x).png is in one of those arrays, it is selected for best fitting on iPad Retina. Solutions:
Eliminate the Default(#2x).png from this arrays. For the Launch image there is another property. If you do that, the iPhone Retina Icon will be selected.
Optionally add the iPad resolution Icons (72, 72 / 144, 144) to one of those arrays. Then the OS will determine one of those as best fitting.
For the Info.plist keys see also:
https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html#//apple_ref/doc/uid/TP40007072-CH6-SW1
Consider, that the naming of those Icon files are only relevant for older iOS versions. In new versions, the OS just searches for sizes in the mentioned arrays.
Related
I have an iPhone only app but it works in compatibility mode in the iPad too(no surprises).
but after I updated the app for the ios11, app icon on the iPad is missing.
here is what I've tried;
- launch on the iPhone simulator, icon appears
- launch on the iPad simulator, icon is missing
change the device options from "iphone" to "universal", run the iPad simulator, icon appears but app needs a new iPad ui.
change back to "iPhone" and the app icon is missing again in iPad. really confusing.
I tried to create a new project and make the same changes but never able to make the icon missing again.
I'm using cocoa pods if that makes any sense.
I think I'm missing a settings or something else, I'm really trying to find it, any advice would be greatly appreciated.
I've found the problem.
In info.plist, there was an extra or problematic entry.
- CFBundleIcons~ipad
Remove this line and iPad icons appear normally.
This problem has been reported by many users over the past 6 months (including desperate pleas to Apple to fix this bug), yet no one's reported the following solution.
I'm using Xcode 9.2, and I noticed today that my iPad/iPhone's application will run fine on my iPad (iOS v11.2.1) but the icon is missing.
This is a legacy app, about 2-3 years old, and the cause seems to be my Appicon file. When I view this file, I see this:
Previously, this resource was sufficient to provide the app icon for both the iPad and iPhone, but apparently, not anymore.
I went into my Images.xcassets file, right-clicked, and selected "App Icons & Launch Images\New IOS App Icon" and now have a look at the extra icon possibilities:
Notice the extra icons for iPads.
Sure enough, I created yet more .png files, with resolutions matching the desired iPad resolutions settings, and now, when I build my app and run it on the iPad, it does show the correct icon.
Oh, and I also needed to go into my project's build settings, select the "General" tab, and change the "App Icons Source" to the name of my new image set, "AppIconNew".
Et voila. No messing around with Cocoapods, no need to change the .plist file (mine didn't have that "CFBundleIcons~ipad" entry anyway), I just needed to create a new image set.
Okay, time to go back to my modern, cosy world of using Visual Studio again now.
(Happy sigh..)
I've had a few legacy apps that did have the CFBundleIcons~ipad in the Info.plist, so I check that first. However, I've also had instances where it was just missing the asset as #Mike Gledhill mentioned. If this is the case, you don't have to go through adding a new AppIcon set. Just check the iPad box in the Attributes Inspector for the current AppIcon assets and the iPad sizes will show in the current set. Then just add the correct assets for each size requirement.
I didn't have CFBundleIcons~ipad entry in my Info.plist file as per "karpat"s answer. So I moved to "Mike Gledhill"s answer, then after observing my all the icons from Image assests, I found that for particular icon which was invisible only on iPad, the device type set was iPhone.
I just changed device type by right cling on image set to Universal :
This did work for me.
I believe I am making a silly mistake. But I cannot figure it out.
I have an image named Default.png that I have added to my project. Now when I go to General and then Launch Images I drag and drop this Default.png to the 2x window for my app. When I go to build the project and try it, I get this error:
"The launch image set named "LaunchImage" did not have any applicable content."
What's the problem here? I've also seen that simply dragging and dropping the Default.png should do it, but I think that's for older versions.
Any ideas?
Thanks
Search for LaunchImage keyword in your .plist file and delete it. Then, try assigning the image again by dragging as you already did before...
This case raised in Xcode 5.0 + iOS 7.
Apple use Images.xcassets to group App Icons, App Launch (Default) Images in Xcode 5.0 + iOS 7.
For solving the problem of Asset Catalog Compiler Error
The launch image set named "LaunchImage" did not have any applicable content.
Approach:
Putting suitable size of images into LaunchImage.
For example:
Should be 640x960 dimensioning in iPhone Portrait iOS7 2x.
Should be 640x1136 dimensioning in iPhone Portrait iOS 7 R2.
Reference from iOS App Programming Guide:
Create and Set iOS Launch Images
Launch images are displayed while your app is launching on iOS. A launch image matching the device resolution appears as soon as the user taps your app icon.
App Launch (Default) Images
Specify the launch images for your app in your Xcode project settings. In Xcode 5.0, specify these images on the General tab of your project settings; in older versions of Xcode, this tab may have a different name. Xcode places your launch image files at the top-level of the app bundle and configures other project settings as appropriate. Specifically, Xcode adds the UILaunchImages key to your app’s Info.plist file automatically if your app runs on iOS 7 or later. That key tells the system the name of your app’s launch image files. For earlier versions of iOS, the system uses the launch image filenames to decide which image to load.
The same error has been resolved by adding the exact sizes of launch images for different iOS devices.
I tried everything here, deleted the .app and rebuilt each time, and nothing worked. I finally got fed up and switched back to the old style of launcher image specification (Project Settings Window -> General -> Launch Images -> Source -> Don't use asset catalogs.) That worked!
I had this problem as well. Make sure of a couple of things:
Aspect Ratio is what Apple expects, in other words square
The sizes are correct, 60pt (for example) should be 60x60
60pt #2x should be 120x120
After I fixed the sizes the app compiled without errors but I think the most important thing is the aspect ratio.
In my case, with Xcode 7, the Images.xcassets was missing from the Build Phases, under Copy Bundle Resources. Then I just added it manually and the problem was gone.
Try looking at the code for "LaunchImage" and rename it to "Default"
Check and compare carefully if your image size matches the expected size. In my case I was using a wrong size, but when correcting the project built fine.
Check this attached image to see where you can compare them
I have been stymied figuring out how to release an application from Xcode5 that supports IOS7 AND IOS 6+ in the same build, with assets (icons and splash screens) that load correctly for both, AND still render the assets for IOS 6 correctly. The major hangup I had was trying to make IOS 6 still render the icons without shading or highlighting since the "prerendered" option is no longer even available in Xcode 5's GUI. Any ideas how to get all of the content and the icon to render correctly AND support multiple OS versions?
Andrew
Apple has clear guidelines on requirements for IOS 7 apps but even then, I ran into errors making a single app support multiple OS versions. After getting it to work, I thought I would point out a few areas that were hangups for me to aid others in the future.
I first updated the whole of my app to support IOS 7 cleanly and then went back and enabled previous versions but that process is not necessary.
Just ensure you first set the correct deploy target
Once you set the deployment target, Xcode5 nicely changes the list of default assets it requires to support the multiple OS versions. Ensure you reupload the correct versions of icons at the required resolutions and required filenames (shown below for IOS6-IOS7 support)
Do the same for the launch images, note that you will have to rename your launch images to new names, Xcode tries doing this for you if you let it. Note the new sizes below, as IOS7 expands the launch image background behind the status bar.
Finally, manually add the two .plist flags below and you should be set to have your icons render across IOS versions consistently, with no gloss (explanation follows)
IOS7 in its new flatness removes the postprocessing the previous versions did where they added a highlight and gloss effect to icons. That effect is no longer done for IOS 7 apps but if you load an app from Xcode5 on IOS 6, it will reapply the default gloss effect. This is infuriating because there no longer is a "prerendered" GUI flag in Xcode to disable that postprocessing. As mentioned above, you need to add the flag manually to your application's plist. In my case, I had to add the flag in two locations to force IOS 6 to stop applying the effect. You can access the plist by either opening the file directly or navigating to the settings in your project overview. You may need to uninstall the app from your simulator and then rebuild the app to force simulator to lose its cache of the old icon.
If you setup the asset catalogue you can open it select the image and then go to the inspector and tick this box
Just use "asset catalog" (you can select that from general on your target).
That would create an images.xcassets on your project there you can easily drag your icon designs for pre iOS 7 and for iOS 7.
UPDATE:
So after the formal release of iOS 7 I can now write this:
On the asset catalog itself select the Appicon set that you want to set as pre-rendered then go to Attribute Inspector and just mark "iOS icon is pre-rendered". you can also set there of course which OS and devices you want to support (it would create all options so you can just drag& drop to set).
Important thing to note is that for some reason if you use several targets and several sets inside this catalog you must add the Target Membership manually. To do this just mark the "asset catalog" file, go to file inspector and mark all targets where you want to use it. I think Apple should do that automatically when you select the "asset catalog" from the target settings but till then I decided to mention that here (took me an hour to figure this out).
I went through this recently. Seems by default it only shows the following.
Easy fix is add a new AppIcon
To give you all these options.
My experience with this:
When creating a new empty app, it will create a "default" app icons / launch images asset catalog that is incomplete as stated by #Smick.
The annoying part of this new "catalog" is that it doesn't show the image sizes.
To work around the issue, select the project on the project navigator, and on the "General" you will notice 2 areas - App Icons and Launch Images. Those will point to an asset catalog. You can change it to "don't use asset catalog." After that, the interface will change to a list of files / dimensions.
However there are several issues with this interface:
It should only ask for the retina versions of the images (and compute the normal, or have two links, one for normal and another for retina).
Several images (the launch ones) need to be renamed for them to work (the system does this for you).
Two images are not assignable due to errors (iPad Portrait iOS 7, and iPad Landscape iOS 7, both in normal resolution) - you can specify an image for them, but the image will not stay on and will become de-selected when you insert the next image.
The image dimensions specified are slightly different from the ones stated on the HIG manuals.
I've a strong dislike of the "new" notation of images with points (as they are device dependent and so not exact).
If you don't want to see iOS 6 reapply the "highlight / lighting" on the icons, you need to add a key on the app plist (project manager | project | info. There, you can add a key "Icon already includes gloss effects". You may need to add it also on iOS 5 icons if required.
For Xcode 6
For LaunchImage you must make sure you check iOS 6.0 and Prior
iPhone (Portrait ) or iPad // depend on your project configuration
Sizes
Default.png (320x480)
Default#2x.png (640x960)
Default-568h#2x.png (640x1136)
The same to AppIcon
I'm working on an iPhone app and I'm not sure which plist property to use out of the following:
Could anyone shed some light on what each of them do and the difference between them?
Apple requires that you include an icon that measures 57x57 pixels. If you are just going to use that image, then you put it under the Icon File property.
However, Apple recommends that you include images of different sizes for different purposes, such as for the retina display, the ipad, and the search bar. If you are going to include multiple images, which will make your app look better, especially the retina one, then you include all of those images in the Icon Files property. Do note that you do not need the Icon File property if you are using the Icon Files property.
I am still developing for IOS 4 so I do not know about the Icon Files (IOS 5) property but I would assume that there are new places where your icon might pop up in IOS 5 where it will not pop up in older IOS versions. You would place those images under that property.
Hope that helps.
I am planning an app for iphone 3g, 3gs and iphone 4. I have a 57*57 image for 3g and 3gs. When I checked documentation apple suggests us to use a 114*114 image for iphone 4. So how can I support both the images with the same build.
Use the CFBundleIconFiles property in your Info.plist and supply two icons, you name the high-resolution one with an "#2x" suffix so the iOS knows it's the high-resolution icon to use on iPhone 4. You can also specify iPad icons (for apps that run on iPhone and iPad) using the same property. This is documented here: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BuildTimeConfiguration/BuildTimeConfiguration.html
Call the iPhone 4 icon Icon#2x.png
http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html
You have to list all your icons in your Application's plist, and name the ones for iPhone 4 "Name#2x.ext" (add '#2x' to your file's name).
If you place the original icon and an icon with the same name but add #2x to the end of the name in your resources folder the correct one will be used automaticly.
The collection of different possible icon sizes for iOS is getting pretty long now. But all you need to do is to list all of the files in your app's Info.plist in the CFBundleIconFiles key, and the OS will do the work of picking the correct size.