Eu tenho um aplicativo compatível com iOS8 e posterior, embutido no Xcode 7 e estou usando um XIB para uma tela de inicialização (não tenho imagens de inicialização). A exibição contém um único UILabel com a versão do aplicativo e 2 UIImageViews com imagens que estão presentes em Images.xcassets: um logotipo e uma imagem inicial.
O UILabel e a imagem do logotipo aparecem corretamente quando inicio o aplicativo, mas a imagem inicial não aparece se eu executar o aplicativo em um iPad Air 2 com iOS9. Testei em simuladores Air e Mini executando iOS8 e iOS9 para iPad 2, iPad Air e iPad Air 2 e a imagem aparece corretamente em todos eles.
Executei uma solução básica de problemas para descobrir se eu conseguia descobrir o que está acontecendo, mas não consegui resolvê-la e a única diferença que posso ver entre a imagem que está funcionando e a que está falhando é quando a adicionei ao ativos...
Aqui está um resumo do que eu sei:
O UIImageView da imagem inicial está no local correto, no tamanho correto. Percebo isso porque defino a cor de fundo para verde apenas para garantir. A vista está lá, mas a imagem não aparece. Portanto, estou assumindo que a visão não é a culpada.
Definir o UIImageView para a imagem inicial também usar a imagem do logotipo faz com que a imagem do logotipo apareça no local correto para a exibição. Isso também me leva a supor que a visão não tem culpa.
A UIImage que estou usando na exibição da imagem inicial é usada em outros lugares do aplicativo e aparece bem nessas outras exibições (a imagem do logotipo também é usada em outros lugares no aplicativo e aparece bem). Portanto, estou assumindo que a imagem é válida e que ela apareça em outras visualizações não é um problema.
Confirmei que as configurações do UIImages para o logotipo e o splash no arquivo xcassets são as mesmas. Eles são definidos como Universal, Qualquer largura e altura, vários fatores de escala, renderizados como padrão. Há uma diferença - o logotipo tem escalas de 1x, 2x e 3x, enquanto a imagem inicial tem apenas 1x e 2x, mas também tentei usar o UIImages com apenas valores de 1x e 1x e 2x no UIView e eles funcionam (se eles forem adicionado ao projeto há algum tempo).
A adição de outra imagem de tamanho ou formato diferente (PNG e JPG) aos meus xcassets e o uso da UIImage no UIImageView para a imagem inicial também não são exibidos.
Adicionando outra UIImageView ao arquivo XIB e alocando uma UIImage que já estava no xcassets funciona, a imagem aparece na tela de carregamento.
Copiar e renomear os arquivos de imagem usados para o logotipo e adicioná-los ao projeto e, em seguida, usar essa UIImage na exibição inicial também não são exibidos.
Tentei limpar o projeto, reiniciar a máquina de desenvolvimento e excluir o aplicativo do Air 2 e reinstalá-lo apenas no caso de um problema.
Essas três últimas etapas me levam a acreditar que há um problema com as imagens adicionadas após um certo ponto na vida útil do arquivo do projeto. Enquanto eu atualizei para o Xcode 7 ontem, a imagem inicial foi adicionada originalmente no Xcode 6, mas a imagem do logotipo (também adicionada no Xcode 6) foi adicionada alguns meses antes.
Procurei nos arquivos json a imagem do logotipo e a imagem inicial e eles parecem ter o mesmo formato. Eu também vasculhei o arquivo pbxproj procurando diferenças e não consigo ver nenhuma.
Então, eu queria saber se alguém tem alguma idéia de por que a tela de lançamento pode não exibir essas novas imagens que estou adicionando especificamente ao Air 2? Outras perguntas que tenho lido relacionadas a imagens que não aparecem parecem estar relacionadas a Iniciar imagens ou a imagens em arquivos XIB que possuem classes associadas, nenhuma das quais parece relevante aqui.