iOS 9 Xcode 7 - O aplicativo aparece com barras pretas nas partes superior e inferior

116

Instalei o aplicativo no iPhone 6 iOS9 e aqui está o que aconteceu. Observe as barras pretas nas partes superior e inferior. Funciona muito bem no iOS8. Como posso consertar?

Tentei construir com Xcode 6.4 e 7. Mesmo resultado.

(o iPhone 5 costumava executar aplicativos do iPhone 4 como este)

insira a descrição da imagem aqui

Mojtaba
fonte
Eu tenho o mesmo problema no iPhone 6 logo após a atualização para iOS 9
aledalgrande
Você está usando o controlador de navegação ou barra de guias em seu aplicativo?
Ing. Ron,
@RonWood Ambos, na verdade.
Mojtaba,
Experimente a correção aqui: stackoverflow.com/questions/32312906/…
aledalgrande

Respostas:

187

Você migrou seu aplicativo de uma versão anterior do Xcode? Nesse caso, o Xcode agora está fazendo uma suposição sobre o tamanho da tela e você precisa de uma maneira de indicar o tamanho real da tela em tempo de execução.

Existem duas maneiras:

a) Se você usar uma tela inicial.

Está faltando um arquivo LaunchScreen.storyboard. Crie um arquivo LaunchScreen.storyboard e adicione-o ao seu projeto.

b) Se você não usar uma tela inicial.

Vá para as configurações do seu alvo e escolha Geral, em seguida, Ícones de aplicativos e Imagens de inicialização. Agora defina "Arquivo de tela inicial" para o seu "main.storyboard" (ou outro storyboard, se apropriado)

Gruntcakes
fonte
1
Qual deve ser o conteúdo de LaunchScreen.storyboard? Recebo um erro dizendo que os storyboards OSX não suportam o dispositivo de destino "iphone"
adamF
4
Você não precisa de um arquivo LaunchScreen. Outra opção é fornecer as imagens de inicialização necessárias para cada tamanho de tela compatível.
rmaddy
Tenho o mesmo problema ao abrir o aplicativo no iOS 9.1, mas meu problema foi resolvido adicionando as imagens da tela de inicialização para toda a resolução, graças a @rmaddy
g212gs
4
No meu caso, preciso alterar "Launch Screen File" para MainStoryBoard se você não tiver Launch.screen.storyboard para fazê-lo funcionar
Evan Lin
A opção b funcionou corretamente para mim! Isso estava me deixando louco, muito obrigado!
Frisinacho,
29

Meu aplicativo não usa uma imagem de inicialização. Definir o "Arquivo de tela inicial" para o meu arquivo "main.storyboard" corrigiu o problema para mim.

Esta configuração pode ser encontrada em "Destino-> Geral-> Ícones de aplicativos e imagens de inicialização"

Use o seguinte link para obter mais informações: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

dreamer.psp
fonte
2
Isso funcionou para mim e parece uma solução muito melhor do que adicionar um novo storyboard aleatório ao seu projeto.
Jeremy
1
Se o projeto for o projeto de inicialização rápida do Parse IOS, vá para Destino-> Geral-> Ícones de aplicativos e imagens de inicialização e o valor suspenso "Arquivo de tela de inicialização" estará vazio. Portanto, escolher "Main.storyboard" resolverá o problema das "barras pretas na parte superior e inferior".
sfbayman
Esta solução não funcionará se você precisar fornecer uma exibição personalizada para a imagem de inicialização ou se sua imagem de inicialização for diferente do controlador de exibição inicial do storyboard.
Himanshu Mahajan
17

Para mim, o problema é que estou migrando meu aplicativo de uma versão anterior do Xcode e o arquivo LaunchScreen.storyboard está faltando no projeto. Acabei de criar LaunchScreen.storyboard e adicioná-lo para iniciar o Arquivo de tela. Isso funcionou. Aplicação com barras pretas na solução superior e inferior

smapps
fonte
6

Estou usando o xcode 7.2. No início, criei um arquivo LaunchScreen.storyboard, como o Permanganato de Potássio sugeriu, e funcionou! No entanto, eu não queria uma tela de inicialização, então tentei definir Main.storyboard como Arquivo da tela de inicialização e funcionou!

xcode 7.2

Max Hiroyuki Ueda
fonte
2

Ao migrar seu aplicativo de uma versão anterior do xCode para o xCode 6 ou xCode 7, você enfrentará esse problema.

Para iOS 7 e anteriores, os desenvolvedores precisam fornecer imagens de inicialização separadas para todos os tamanhos de tela, resoluções e orientações suportadas por seus aplicativos.

No Xcode 6 ou posterior, existe outra opção. Você pode especificar um storyboard cujo controlador de visualização inicial será usado como a tela de inicialização do aplicativo. Use as etapas abaixo:

  • Crie um arquivo de storyboard em branco denominado LaunchScreen.storyboard.

  • Vá para as configurações de destino e, na guia "Geral", selecione o storyboard como seu Arquivo da tela de inicialização na seção "Ícones de aplicativos e imagens de inicialização". O Xcode adicionará uma chave UILaunchStoryboardName correspondente ao Info.plist do seu aplicativo. Quando esta chave está presente, o Xcode a prioriza sobre quaisquer imagens de inicialização que você possa ter definido.

  • Adicione algumas subvisualizações à visão do storyboard recém-criado e posicione-as com restrições. Ao iniciar o aplicativo em um dispositivo, o sistema operacional deve usar a cena como tela de inicialização.

Exclua o aplicativo mais antigo do simulador e limpe o projeto.

Felicidades :-)

Himanshu Mahajan
fonte
2

Eu tenho o mesmo problema no meu aplicativo. No meu aplicativo, tenho vários destinos adicionados ao projeto. Se eu usar a solução de storyboard de lançamento, posso ver a tela inteira, mas no meu caso minha imagem do Lunch parece borrada e esticada no iPhone 4. Para resolver este problema, usei as soluções de ativos LaunchImage. Depois disso ainda estou enfrentando o mesmo problema. Eu tentei todas as soluções acima, no final descobri que minhas imagens PNG não incluem resoluções ALPHA . Depois de adicionar novas imagens, posso ver as imagens em tela cheia.

VDPATEL
fonte
2

Este é se você não usar o storyboard.

Isso ocorre quando você remove LaunchScreende Launch Screen Fileem App icons and Launch Images. insira a descrição da imagem aqui

Em vez de removê-lo daqui, vá para info.plist e localize Launch screen interface file base namee remova LaunchScreen, ou seja, deixe em branco. insira a descrição da imagem aqui

Não aparecerá em info.plist se você LaunchScreenjá tiver removido de Launch Screen File. Em seguida, você pode fornecer qualquer nome Launch Screen Filee ele aparecerá e você pode remover o nome.

Alok Subedi
fonte
1

Vá para o catálogo de ativos e crie uma nova imagem de lançamento do iOS. em seguida, em Destino> Geral> Ícones de aplicativos e Imagens de inicialização> Origem da imagem de inicialização, você verá automaticamente a nova imagem de inicialização criada no catálogo de ativos.

Mohcine Belarrem
fonte
1

No meu caso, tenho vários destinos no projeto e cada um tem suas próprias imagens de tela de inicialização. O estranho é que um dos alvos parece bom, mas outros têm aquelas barras pretas. A coisa estava no nome da pasta Launch dentro de assets. Alterar o nome para LaunchImage resolve o problema.

d.rozumeenko
fonte
1

Swift 4.2

selecione LaunchScreen.storyboard se estiver vazio

insira a descrição da imagem aqui

Shakeel Ahmed
fonte
0

No meu caso, tenho um ativo com imagens de inicialização, no entanto, ele também exibia a barra escura superior e inferior.

Eu tentei a solução de storyboard de lançamento e funciona, mas não queria adicionar um novo arquivo, então, fiz isso para corrigir o problema:

  1. Copiei minhas imagens de lançamento para outra pasta
  2. Removido o ativo LaunchImage existente
  3. Adicionado um novo ativo LaunchImage
  4. Adicionadas as imagens ao novo LaunchImage

É isso aí!

Wils
fonte
0

Vá para as configurações de destino no xcode nessa seção, vá para a seção de ícones de aplicativos e imagens de inicialização nessa seção selecione o arquivo da tela de inicialização, você encontrará uma lista suspensa de valores selecione o valor CDVLaunchScreeen em relação ao valor do arquivo da tela de inicialização

Shankar Prasad
fonte
0

Tive um problema semelhante em um iPod. Para consertar isso, eu substituí

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>

com

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>
<key>UILaunchStoryboardName~ipod</key>
<string>LaunchScreenIphone</string>

em Info.plist.

Roman Podymov
fonte
-1

Não faça nada que esteja descrito nas respostas anteriores ...

Para mostrar o controlador de visualização, siga o seguinte único passo

Step 1 : Add the splash Screen for iPhone and iPad.

Após este erro não virá novamente.

Shubham JAin
fonte