Installed the app on iPhone 6 iOS9 and here is what happened. Notice black bars on top and bottom. It works just fine on iOS8. How I can fix it?
I've tried building with Xcode 6.4 & 7. Same result.
(iPhone 5 used to run iPhone 4 apps like this)
Did you migrate your app from an earlier version of Xcode? If so then Xcode is now making an assumption about your screen size and you need a way of indicating the actual screen size at run time.
There are two ways:
a) If you use a launch screen.
You are missing a LaunchScreen.storyboard file.
Create a Launch Screen object from the New File... dialog
b) If you don't use a launch screen.
Go to your Target's settings and choose General, then App Icons and Launch Images.
Now set "Launch Screen File" to your "main.storyboard" (or another storyboard if appropriate)
My App does not use a launch image.
Setting the "Launch Screen File" to my "main.storyboard" file fixed the issue for me.
This setting can be found under "Target->General->App Icons and Launch Images"
Use the following link for more information:
http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/
For me the problem is i'm migrating my app from earlier version of Xcode and the project is missing LaunchScreen.storyboard file. I have just created LaunchScreen.storyboard and added it to launch Screen File. This did the trick.
I'm using xcode 7.2 . At first, I created a LaunchScreen.storyboard file, as Potassium Permanganate
suggested, and it worked! However, I didn't want a launch screen, so I tried setting Main.storyboard as Launch Screen File and it did the trick!
This one is if you do not use storyboard at all.
It occurs when you remove LaunchScreen from Launch Screen File in App icons and Launch Images.
Instead of removing it from here go to info.plist and find Launch screen interface file base name and remove LaunchScreen, i.e. leave it blank.
It wont show in info.plist if you have removed LaunchScreen already from Launch Screen File. Then you can give any name in Launch Screen File and it will appear and you can remove the name.
When you migrate your app from earlier version of xCode to xCode 6 or xCode 7, you will face this issue.
For iOS 7 and earlier, developers need to provide separate launch
images for all screen sizes, resolutions and orientations their app supported.
In Xcode 6 or later, there is another option. You can specify a storyboard whose initial view controller will then be used as the app’s launch screen. Use below steps:
Create a blank storyboard file named LaunchScreen.storyboard.
Go to your target settings and, on the "General" tab, select the storyboard as your Launch Screen File in "App Icons and Launch Images" section. Xcode will add a corresponding UILaunchStoryboardName key to your app’s Info.plist. When this key is present, Xcode will prioritize it over any launch images you might have set.
Add some subviews to newly created storyboard's view and position them with constraints. When you launch the app on a device, the OS should use the scene as the launch screen.
Delete the older app from simulator and clean the project.
Cheers :-)
I have same issue in my app . In my app i have multiple targets added to project . If i use launch storyboard solution then i can see full screen but in my case my Lunch image looks blurred and stretched on iPhone 4 . To come out from this issue I have used LaunchImage asset solutions . After this still I am facing same issue .I have tried all above solutions, At end I found my png images don't include ALPHA resolutions . After adding new images ,i can see full screen images .
iOS changed the way the system detects the resolution of the iPhone. You used to have to supply a number of png images named things like "Default-568#2x.png", "Default-667h#3x.png". Now you don't have to do that anymore. You need to delete those "Default-568#2x.png" style files and move on to using a proper LAUNCH SCREEN object in your project.
To add a launch screen just go to the New File... dialog (File / New / File, or press Cmd + N)
Double click that new Launch Screen file to edit it. Be sure it is ticked "use as launch screen" in its properties.
Finally be sure to select your LaunchScreen.storyboard file under project properties / Targets / "App Icons and Launch Images"
Go to the asset catalog and create a new iOS launch Image. then in Target>General>App Icons and Launch Images>Launch Image Source you will see automatically the new Launch Image created in the assets catalog.
In my case, I have several targets in the project and each one has it's own launch screen images. The weird thing one of the targets looks fine but others have those black bars. The thing was in the name of Launch folder inside assets. Change name to LaunchImage solves the problem.
Swift 4.2
select LaunchScreen.storyboard if its empty
In my case I have one asset with launch images however it was displaying the top and bottom dark bar as well.
I've tried the launch storyboard solution and yes it works but I didn't want to add a new file so, this is what I did to fix the issue:
Copied my launch images to another folder
Removed the existing LaunchImage asset
Added a new LaunchImage asset
Added the images to the new LaunchImage
That's it!
Go to target settings in xcode in that section go to App icons and launch images section in that section select launch screen file you will find a drop down of values select CDVLaunchScreeen value against launch screen file value
I had a similar issue on an iPod. To fix this, I replaced
<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>
with
<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>
<key>UILaunchStoryboardName~ipod</key>
<string>LaunchScreenIphone</string>
in Info.plist.
I had an old app (iOS 7.4 - 8.2) and after upgrading it got the same issue (getting black empty bar at the top), I managed to solve it by:
Main.storyboard
Choose your Scene & Controller
on left menu, go to Attribute Inspector
find "Presentation" and instead of "Automatic" set it to "Full Screen"
It did the trick for me.
My app is written in python kivy. This is what I did. It worked.
The reason is that I don't have AppIcon and LaunchImage defined.
There is free website that can provides you a set of icons and
launchImages for various devices.
Once you have the full set, usually 2 folders - AppIcon and
LaunchImage folder. Open your Xcode project, General > AppIcon and
Launch images.
In the AppIcon Source, click the arrow on the right. It will go to
another page, in which you can drag and drop the two folders in
(yes, drag the folders).
Go back to the previous General tab, in the AppIcon Source, you can
select your folder, usually called AppIcon-1. And tick 'include all
icon asset'
Leave 'Launch Screen File' blank. This is very different from
previous Xcode version.
Under the deployment info, status bar style, you can tick require
full screen.
After those steps you should be good to load again.
Please note these steps are for a non storyboard app. In my case, my app is written in kivy.
Don't Do anything that are described in earlier answers...
To show view Controller follow the following single step
Step 1 : Add the splash Screen for iPhone and iPad.
After this this error will not come again.
I am using Xcode 6.1 to create a app supporting iOS 6 and later.
.In target's "App Icons and Launch Images", I set the Launch Images Source as "Use Asset Catalog" and Launch Screen File to "LaunchScreen".
In Images.xcassets which created by Xcode, I fill in every box for "LaunchImage", but there's always a warning message:
Retina 4-inch Support. Applications using Launch Screen Files and
targeting iOS 7.1 and earlier need to also include a Launch Image in
an Asset Catalog.
I created another Image Set named as "Default" and fill in the "Retina 4 2x" box with expected image. But the warning message still there.
Any hint to clear this warning? Thanks.
I ran into the exact same problem this morning. Here's how I fixed it.
Select your Target in the project navigator. Under the General tab, you should see the section for App Icons and Launch Images. Where you see Launch Images Source, click 'Use Asset Catalog'.
You will then see Migrate launch images to an asset catalog dialogue. Click 'Migrate'.
Make sure that your Launch Images Source on the previous screen points to the right image set in your asset catalog. In your case, you would set it to 'Default'.
That should take care of the warning.
When iPhone 5 first came out we had to go through the silliness of adding a Default-568h#2x.png to the project to get the app to use the full height of the iPhone 5. In late 2014 are we still doing that?
We have asset catalogs and the LaunchScreen.xib file. Do we still need to add the Default-568h#2x.png file? If so, where does it go now? I've tried a few different things and I can't get rid of the black bars in a new app created with Xcode 6 GM.
As stated by rmaddy in the comments, if you are supporting iOS < 8, you still need to do this:
General / App Icons and Launch Images
Launch Image Source - select LaunchImage for asset catalog.
Add a 640x1136 image for the "Retina 4" option.
So I guess the LaunchScreen.xib is useless if you target iOS < 8, unless you want to update both that and the asset catalog when the image changes.
if you are not creating new Project,
like changing or rename old Project,
you should remove all Images.xcassets from Project.
then
Navigate to project settings
Under "App Icons and Launch Images" click on "Use Asset Catalog"
Select "Migrate" on the popup that appears. make new Asset.
it work pretty fine for me.
env is
xocde6.1 iPhoneSimulator5/5S/6/6+ on iOS8
I am developing iPhone app. When i run the app on iPhone i can see the the icon on Home screen. But when i run the same app on iPad whitish icon appears which normally appears when the app has no icon.
I have tested my other iPhone apps they are working fine but this is causing trouble. I used Asset Catalogs to display app icons and they are perfectly adjusting in it. What could be the problem here any suggestions?
I also initially started with developing the app for iPhone and then needed to add iPad icons and here where I found them:
1) go to Assets
2) find appIcon (usually on top)
3) go to attributes inspector
4) choose iPad ios swift version
5) iPad iCons holders will appear you will need to fill them
xCode 5 was not showing anything related to iPad for an iPhone only app. So when i migrated my images to Assets Catalogs and clicked on app icon in the Attribute Inspector i was given the options like i want to give icons for iPad. So i provided and problem solved :)
for Universal application iPad Icon file size is 72x72 and named Icon-72 and for Retina its 114x114 with Icon-72#2x.png. Try to include this files into your resource bundle and then build your app
In project settings there are fields for App Icons please refer to the attachment
go to general , then app icon source , then click the appicon
by default , you can't see the place for ipad
3 . left click and create a new image set
then you can see all icon size , add the #76 #152 for ipad
In my case i do have set images for iPad in my assets but even then it was not showing. I have to check Target Membership check box. I had imported AppIcons folder and this got uncheck.
In project settings there are fields for both, iPad and iPhone icons. You may want to provide different icons for different devices, so try providing your icon for both, iPad and iPhone. Even though it will be the same image.
Hope the stackoverflow link will help How do you update the app icons and launch images to support IOS 6 and 7 simultaneously?
As answered by Andy Bean, try using Asset Catalog.
Link 2: iOS 7 App Icons, Launch images And Naming Convention While Keeping iOS 6 Icons
I've been setting my own names on launch images for my apps in the Info.plist like
with the following images in bundle (with correct dimensions, 320x480 px for default.png and 640x960 px for default#2x.png etc.)
this have been working great prior to iOS 7 and Xcode 5. Now when I look in the General tab for the corresponding target in Xcode 5 my launch image files get mixed up from other targets in my project, which worries me, even though I haven't seen wrong launch image files when actually running the target. Should I be worried? The chosen images isn't in the build target so I should be fine there, but is there a risk of getting a blank image instead?
My main question is, can I use my default setup in Info.plist (that help auto detected respective launch images) for iOS 7, and if so, what should I name the corresponding launch images (now that there's the "iOS 6.1 and Prior" options as well with different dimensions)? This especially applies for the iPad Portrait Retina (iOS 7) that has new dimensions. The auto detection on iPad Portrait Non-Retina (iOS 7) refers to an image, not in the build target, that has the right dimensions. Again, when running a simulator with iPad Retina and iOS 7.0 the correct launch image shows.
Anden, I ran into the same problem today while adding a new target to the half dozen I already had that were set up in the same way that you set up yours.
I decided to use that "Use Asset Catalog" button, which took some work to set up, but has simplified things greatly in the end:
1- (optional) Delete (remove references only) the icon and launch image files from your project. I don't think you need the files to be in the project navigator anymore.
2- Choose your primary target, go to "General" and "App Icons" (as you showed above).
3- Press the "Use Asset Catalog" button, with the "Migrate Launch Images" checked as well.
4- This creates a file called "Images.xcassets" in your project navigator. Go there, and find the App Icon and Launch Image catalogs corresponding with the particular target. You can drag and drop image files from the finder into the slots in the catalog, and rename the icon/default groups from the list on the left.
5- Once you've got the image slots filled up, go back to the "General" for each target, and press the "Use Asset Catalog" button again for each target. Instead of creating a new xcassets file for each, you can store all the launch images and icon files in the same xcassets file.
I think it is a bug in xcode 5. I filed a bug, perhaps you should too (bugreport.apple.com). Make Apple aware things like this are not working well, and are taking our time and nerves.