Iniciar canvass que suportam iOS6 e iOS7 – forçado a canvas inicial

Quando se trata da canvas de lançamento, não consigo encontrar uma maneira unificadora de imitar a aparência do aplicativo no iOS6 e no iOS7 (suportando ambos). Somos forçados a fazer uma canvas inicial comum de um logotipo ou similar se tivermos um menu da barra de ferramentas ou vocês têm alguma boa idéia de como resolvê-lo?

Resposta curta

No iOS 7, um aplicativo pode usar uma imagem de boot diferente, dependendo da versão do iOS em que ele está sendo executado. Para fornecer imagens de boot diferentes, adicione a chave UILaunchImages ao arquivo Info.plist e use um dictionary para descrever cada imagem de boot.

fundo

Ele usa as seguintes chaves:

UILaunchImageName – Uma string contendo o nome do arquivo de imagem PNG. O arquivo de imagem deve residir no nível superior do pacote de aplicativos. O nome que você especificar para essa chave não deve include uma extensão de nome de arquivo, nem deve include modificadores como @ 2x, -568h, ~ iphone ou ~ ipad.

No disco, seus nomes de arquivos de imagem ainda podem include os modificadores @ 2x, -568h, ~ iphone ou ~ ipad, conforme apropriado, embora não sejam necessários. O sistema contabiliza automaticamente esses modificadores ao escolher o arquivo a ser carregado.

UILaunchImageMinimumOSVersion – para iOS7, esta deve ser uma string “7.0”.

UILaunchImageOrientation – String contendo um dos seguintes: Portrait, PortraitUpsideDown, Landscape, LandscapeLeft, LandscapeRight.

UILaunchImageSizeString especificando largura e altura, ex: “{320, 480}”. Você deve especificar a largura e a altura em relação ao dispositivo em uma orientação retrato. Em outras palavras, as imagens retrato e paisagem direcionadas ao mesmo dispositivo teriam a mesma largura e altura.

Se esta chave estiver presente, o iOS 7 usa-a exclusivamente para obter imagens de lançamento.

MAS: Eu achei que aderir à convenção de nomenclatura também para iOS7 ajudou muito!

Esta chave é suportada no iOS 7.0 e posterior.

OK – então agora o que?

Porque eu já tinha lançado imagens para iOS6 e com todas as convenções de nomenclatura específicas. Eu escolhi fazer uma cópia de todos eles e prefixar o nome com “iOS7-” de modo a limitar minha própria confusão sobre todos os diferentes tamanhos e nomes. Fazer um prefixo deve ser útil, pois a maioria das imagens seria imediatamente carregada corretamente.

Os nomes dos arquivos: Eu já os tenho para o iOS6, também listo o tamanho dos arquivos para os que precisam:

  • Default.png (320x480)
  • Default@2x.png (640x960)
  • Default@2x~ipad.png (2048x1496)
  • Padrão ~ ipad.png (768x1004)
  • Padrão1024x768.png (1024x768)
  • Padrão1024x768@2x.png (2048x1536)
  • (640x1136)
  • Padrão768x1024.png (768x1024)
  • Padrão768x1024@2x.png (1536x2048)
  • Paisagem-padrão ~ ipad.png (1024x748)
  • (1536x2048)

Então eu fiz uma cópia de todos esses nomes de arquivos para o iOS7 (mesmos tamanhos) prefixando-os com “iOS7-“:

No XCode

Agora crie sua input no PLIST. Vá para o seu nome-de-aplicativo.plist. Em uma área em branco, clique com o botão direito do mouse e escolha “Adicionar linha”. Certifique-se de que se torne um item de topo e não um sub-item de alguma outra informação no .plist.

Escreva: UILaunchImages

Clique com o botão direito do mouse sobre este UILaunchImages e selecione o tipo de valor “Array”.

Use a ilustração abaixo como um guia para o texto e como ficará quando terminar tudo:

insira a descrição da imagem aqui

Se você abrir esse array de forma que o pequeno triângulo indicador à esquerda fique apontando para baixo, ele estará vazio na primeira vez, mas se você escolher “adicionar linha” enquanto estiver aberto, ele criará uma sub-linha. Faça isso agora:

Clique com o botão direito do mouse nas UILaunchImages e selecione “Adicionar linha”. Clique com o botão direito do mouse nessa nova linha (item 0) e selecione o tipo de valor “Dict”

Continue abrindo esses itens com o indicador de triângulo e clique com o botão direito do mouse em “Adicionar linha”

Este item você UILaunchImageMinimumOSVersion e definirá o tipo de valor como “string” e a string como “7.0”

Agora, as sequências a seguir são todas e devem estar no mesmo nível que o item UILaunchImageMinimumOSVersion. No mesmo dict (dictionary). Crie-os escolhendo apenas “Adicionar linha” para cada um:

UILaunchImageName – base-name-of-iOS7-launch-image. No meu caso, isso era “iOS7-Default”

UILaunchImageOrientation – exemplo: Portrait

UILaunchImageSize – o tamanho da base elementar iOS7-Default.png: “{320, 480}”. O programa encontrará todos os arquivos com permutações do nome base. Lembre-se de selecionar o nome base do arquivo sem as especificações ipad / iphone / portrait / landscape ou .png.

Nota:

O Xcode já tinha feito os seguintes itens no .plist para mim depois de adicionar as imagens do iOS6 em todos os slots disponíveis 🙂

UILaunchImageFile ~ ipad… = ”Default” – então isso foi OK

UILaunchImages ~ ipad… Tinha dois itens que precisavam ser atualizados para as versões do iOS7, porque agora eles estão segurando incorretamente a versão do iOS6. Aqueles que eu tinha chamado Default1024x768 e Default768x1024 e agora eu só prefixado “iOS7-” para cada um dos nomes e eu estava feito.

Exemplo de como isso pode parecer para aqueles que querem editar o plist diretamente:

 UILaunchImages   UILaunchImageMinimumOSVersion 7.0 UILaunchImageName iOS7-Default  UILaunchImageOrientation Portrait UILaunchImageSize {320, 480}   

[editar por jd: ortografia fixa de “UILaunchImages”]

Realce o projeto no navegador do projeto, selecione “General”, role para baixo até “App Icons”, clique em “Use Asset Catalog” e selecione “Migrate”. Seus icons e canvass iniciais serão migrados automaticamente para um catálogo de resources. Você pode então selecionar o catálogo para adicionar outras imagens.

Para adicionar novas imagens basta arrastar do Finder e soltar nos quadrados para cada tipo de imagem.

(Cuidado: o editor de catálogos inexplicavelmente usa um formato amplo não rolável, e você pode estar perdendo o material do lado direito se a sua canvas não for larga o suficiente.)

Você também pode usar o novo recurso de catálogo de imagens no Xcode 5 para gerenciar várias versões de imagens de boot.

Agora você pode adicionar diretamente os icons de aplicativos e imagens splash no images.xcassets, Clique no botão + para adicionar o respectivo conjunto de imagens para iphone5 com iOS 5,6,7, iphone4, iPad. agora não há necessidade de definir o nome das imagens como default.png, default @ 2x.png

Esteja avisado ao usar um repository images.xcassets, ele não permitirá que você localize suas canvass iniciais.

No momento, estou tentando obter uma versão em francês e inglês do nosso aplicativo.

WWW> O método ‘plist’ funcionará se você precisar localizar suas canvass iniciais?

Eu também tive o mesmo problema com um aplicativo antigo que desenvolvi para o iOS 7. Ele foi arquivado e enviado com o Xcode 6, mas o erro “binary not optimized for iPhone5” retornou com o Xcode 7. Depois de tentar várias outras soluções, só foi bem-sucedido removendo todas as referências a qualquer imagem de boot (desde que eu estava usando um .xib universal) E definindo o destino de implantação de 7.0 a 8.0