Mojtaba
Mojtaba

Reputation: 6044

iOS 9 Xcode 7 - Application appears with black bars on top and bottom

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)

enter image description here

Upvotes: 125

Views: 46305

Answers (17)

Jesscralett
Jesscralett

Reputation: 39

My app is written in python kivy. This is what I did. It worked.

  1. 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.
  2. Once you have the full set, usually 2 folders - AppIcon and LaunchImage folder. Open your Xcode project, General > AppIcon and Launch images.
  3. 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).
  4. 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'
  5. Leave 'Launch Screen File' blank. This is very different from previous Xcode version.
  6. 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.

Upvotes: 0

Seyed Hani Mohajerani
Seyed Hani Mohajerani

Reputation: 79

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"

enter image description here

It did the trick for me.

Upvotes: 0

bobobobo
bobobobo

Reputation: 67224

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 "[email protected]", "[email protected]". Now you don't have to do that anymore. You need to delete those "[email protected]" 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)

launch screen creation

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"

select your launch screen

Upvotes: 2

Scrungepipes
Scrungepipes

Reputation: 37581

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

launch screen creation

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)

Upvotes: 202

Roman Podymov
Roman Podymov

Reputation: 4521

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.

Upvotes: 0

Alok Subedi
Alok Subedi

Reputation: 1611

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. enter image description here

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. enter image description here

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.

Upvotes: 6

Shakeel Ahmed
Shakeel Ahmed

Reputation: 6023

Swift 4.2

select LaunchScreen.storyboard if its empty

enter image description here

Upvotes: 1

Shankar Prasad
Shankar Prasad

Reputation: 11

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

Upvotes: 0

Shubham JAin
Shubham JAin

Reputation: 613

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.

Upvotes: -1

VDPATEL
VDPATEL

Reputation: 416

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 .

Upvotes: 2

Wils
Wils

Reputation: 1211

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:

  1. Copied my launch images to another folder
  2. Removed the existing LaunchImage asset
  3. Added a new LaunchImage asset
  4. Added the images to the new LaunchImage

That's it!

Upvotes: 0

Max Hiroyuki Ueda
Max Hiroyuki Ueda

Reputation: 99

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!

xcode 7.2

Upvotes: 6

smapps
smapps

Reputation: 320

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. Application with black bars on top and bottom solution

Upvotes: 17

Himanshu Mahajan
Himanshu Mahajan

Reputation: 4799

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 :-)

Upvotes: 2

d.rozumeenko
d.rozumeenko

Reputation: 126

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.

Upvotes: 1

Mohcine Belarrem
Mohcine Belarrem

Reputation: 13

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.

Upvotes: 1

dreamer.psp
dreamer.psp

Reputation: 615

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/

Upvotes: 31

Related Questions