Como ativar a resolução nativa para aplicativos no iPhone 6 e 6 Plus?


194

O Xcode 6 GM agora inclui simuladores para iPhone 6 e 6 Plus e, por padrão, eles executam aplicativos em um modo em escala.

Para ativar o novo tamanho da tela, tentei adicionar o Default-667h@2x.pngque parece fazer parte do truque, já que o aplicativo agora não funciona, com o erro "Não é possível executar o aplicativo no Simulador - Foi encontrado um erro durante a execução (Domain = LaunchServicesError, Código = 0) ".

Alguém descobriu como realmente executar um aplicativo na resolução 6/6 +?


16
Como já foi dito, o truque é adicionar uma imagem de lançamento do tamanho certo ao seu projeto. Eu escrevi um guia rápido de como adicionar uma imagem de inicialização para que você possa exibir a resolução do iPhone 6 aqui.
matthewpalmer


2
O nome das imagens é diferente para o iphone 6/6 +. Para mim, apenas adicionar a imagem de lançamento para 6 e 6+ funcionou perfeitamente. Olhe para esta resposta para a convenção de nomenclatura correta: stackoverflow.com/a/27473877/1568532
fellowworldcitizen

Existe alguma alternativa em vez de usar o LaunchScreen?
Vaibhav Jhaveri

Respostas:


220

Você pode adicionar um arquivo de tela de inicialização que parece funcionar para vários tamanhos de tela. Acabei de adicionar o MainStoryboard como um arquivo de tela de inicialização e isso impedia o dimensionamento do aplicativo. Acho que vou precisar adicionar uma tela de inicialização permanente mais tarde, mas isso aumentou a resolução nativa e funcionou rapidamente. No Xcode, vá para o seu destino, geral e adicione o arquivo da tela de lançamento lá.

Iniciar arquivo de tela


2
Esta é provavelmente a melhor solução se você estiver usando um único storyboard que lida com todos os dispositivos. Minha resposta é apropriada se você não estiver usando um único storyboard ou precisar de imagens de inicialização explícitas e separadas.
rmaddy

Preciso definir imagens de inicialização explícitas para o iPhone 6 e 6 Plus. Existe uma convenção de nomenclatura se eu não quiser usar o catálogo de ativos?
Radif Sharafullin

@Radif Sharafullin Aqui estão algumas instruções sobre como nomear as imagens de inicialização: developer.apple.com/library/prerelease/ios/documentation/iPhone/… . Role até o final para iniciar o padrão de nomeação de imagens.
David L

6
Lembre-se de que, uma vez migrado para o LaunchImageiOS, o aplicativo não será mais estendido para o iPhone-5 para iPhone-6 (e 6+). O que pode interromper a interface do usuário do seu aplicativo se você estiver exibindo visualizações com tamanho absoluto, como 320px de largura, e não usar tamanho relativo usando layouts automáticos.
Atvchatri

1
@ design bobo2000 responsivamente.
mattsven

116

Se você estiver usando catálogos de ativos, vá para o catálogo de ativos LaunchImages e adicione as novas imagens de inicialização para os dois novos iPhones. Pode ser necessário clicar com o botão direito do mouse e escolher "Adicionar nova imagem de inicialização" para ver um local para adicionar as novas imagens.

O iPhone 6 (Retina HD 4.7) requer uma imagem de inicialização retrato de 750 x 1334.

O iPhone 6 Plus (Retina HD 5.5) requer imagens retrato e paisagem com tamanhos de 1242 x 2208 e 2208 x 1242, respectivamente.


2
Gostaria de poder escolher duas respostas certas, pois tudo isso parece muito correto. Ainda não começamos a usar catálogos de ativos (bem, tentei, sem sucesso, adotar um - de alguma forma o aplicativo não encontrou as imagens de inicialização lá), mas atribuir o arquivo da tela de inicialização foi uma solução fácil aqui.
villapossu 10/09/14

Deve ser possível adicionar as imagens de inicialização corretas sem usar catálogos de ativos. Mas não sei de imediato como referenciá-los no Info.plist.
rmaddy

Preciso realmente adicionar uma imagem? Liguei-os e ainda está em escala.
Epic Byte

Sim, você deve realmente adicionar as imagens (ou usar o novo "Arquivo Tela Launch" (mas isso é apenas para iOS 8).
rmaddy

1
@trumpetlicks O plus é renderizado em um alvo maior e, em seguida, reduz a renderização para o tamanho de tela real, mesma técnica dos MacBook Pro da retina. Além disso, o Plus pode realmente lançar aplicativos na paisagem, nenhum outro iPhone pode
hokiewalrus

104

Criei telas básicas de lançamento em preto que permitirão que o aplicativo seja dimensionado corretamente no iPhone 6 e iPhone 6+:

retrato do iPhone 6

retrato do iPhone 6 Plus

Se você já possui um LaunchImage em seu .xcassett, abra-o, alterne para a terceira guia no menu à direita no Xcode e marque as imagens do iPhone 8.0 do iOS para adicioná-las ao conjunto existente. Em seguida, arraste as imagens:

insira a descrição da imagem aqui


52

Eu não queria apresentar um catálogo de ativos.

Pela resposta de seahorseseaeo aqui , adicionando o seguinte ao info.plist funcionou para mim. (Editei como um "código-fonte".) Em seguida, nomeiei as imagens Default-667h@2x.png e Default-736h@3x.png

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
</array>

Esta resposta é ótima. Permite usar as imagens facilmente para fazer a transição da tela inicial para o aplicativo. Nenhuma outra solução (catálogo de ativos ou storyboard) permite que isso seja feito com a mesma facilidade.
Jjxtra # 13/14

7
Funcionou para mim (obrigado!), Mas parou de reconhecer a imagem de lançamento do 568h @ 2x, desativando o suporte ao tamanho do iphone 5. Eu apenas tive que adicionar outro item semelhante aos dois acima, mas especificando 568h. (específico campos: Default-568h, {320, 568})
Steph Thirion

O mesmo se aplica ao iPhone 4S.
Josh Bernfeld 25/09

1
acabou de fazer a experiência (no simulador) de que os arquivos de imagem especificados nem precisam existir.
glasz 28/09/14

Estou com um problema com esta técnica no iPhone 6: ela mostra primeiro a tela de inicialização Default-667h@2x.png e depois mostra brevemente Default-Portrait@2x~iphone.png. Qualquer ideia?
Samuel

21

Observe que o iPhone 6 usará a resolução de 320pt (640px) se você tiver ativado o 'Zoom de exibição' em iPhone> Configurações> Exibição e brilho> Exibir.


Eu gostaria que isso fosse melhor documentado!
precisa saber é o seguinte

Você acabou de salvar meu dia. Tentei todas as outras soluções, mas meu problema era apenas que o dispositivo estava no modo de zoom.
MessuKilkain

8

Faça o seguinte (veja na foto)

  1. Saltar catálogo de ativos
  2. clique com o botão direito e escolha "Adicionar nova imagem de inicialização"

    • iPhone 6 -> 750 x 1334
    • iPhone 6 Plus -> 1242 x 2208 e 2208 x 1242

insira a descrição da imagem aqui


3

Foi encontrado um erro durante a execução (Domínio = LaunchServicesError, Code = 0)

Normalmente, isso indica que o installd retornou um erro durante o processo de instalação (recursos incorretos ou similares).

Infelizmente, o Xcode não exibe o erro subjacente real (sinta-se à vontade para arquivar enganos desse bug conhecido).

Você deve verificar ~ / Library / Logs / CoreSimulator / CoreSimulator.log, que registrará o erro subjacente para você.


Obrigado! Não estava ciente desse insight extra sobre a causa raiz do erro. O registro detalhado não diz muito para mim, mas pelo menos tenho algo a anexar ao meu arquivo de radar.
villapossu

0

Se você estiver usando o catálogo de ativos e tiver vários destinos usando o mesmo arquivo de catálogo de ativos, certifique-se de que esse arquivo tenha verificado os dois destinos no painel direito no xcode.

Esse foi o meu problema.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.