Tenho um aplicativo em que substituí recentemente as imagens de lançamento e os ícones de aplicativos, removi todos os ativos antigos de qualquer lugar do projeto. Quando atualizo o aplicativo da versão antiga para a nova versão apenas construindo no Xcode, tudo está bem. No entanto, se eu tiver a versão antiga do meu aplicativo instalada, atualize-a no TestFlight. Toda vez que eu matar o aplicativo, reinicie-o, a antiga imagem de inicialização aparecerá brevemente antes de mostrar a nova imagem de inicialização. Da mesma forma, quando fecho o aplicativo, o ícone antigo pisca brevemente antes de voltar para o novo.
Abri o aplicativo usando o iExplorer e notei que há uma imagem da tela de inicialização antiga salva no /Library/Caches/Shapshots
diretório (não sei como ou por que ela chegou lá). Quando eu o apago manualmente pelo iExplorer, ele para de aparecer. No entanto, quando tento removê-lo com código usandoNSFileManager
métodos, recebo erros dizendo que sou proibido de excluir arquivos neste diretório.
Alguém já experimentou isso antes e tem algum conselho?
Respostas:
Consegui obter o cache do trampolim de forma confiável para testar as alterações na imagem de inicialização, fazendo o seguinte:
A imagem é atualizada corretamente sempre. Pena que eu preciso desligar o dispositivo para que ele funcione - mas pelo menos consegui progredir dessa maneira. Espero que isso ajude alguém.
fonte
Esses caches são usados pelo Springboard para acelerar a troca de aplicativos. Este não é um problema que afetará seus usuários de produção e, em teoria, deve desaparecer na próxima vez que o Springboard decidir capturar instantaneamente seu aplicativo.
Dito isto, este não é um problema que você pode corrigir. Este é um erro no código da Apple, não no seu.
ATUALIZAÇÃO: parece haver uma solução alternativa que não requer a reinicialização do dispositivo.
Isso entrará em vigor após o segundo lançamento!
Uma explicação completa de como isso funciona aqui: https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html
fonte
Para o simulador apenas
Reset Contents and Settings...
fonte
@InkGolem
é verdade.
Eu estava enfrentando esse problema quando alterei minha tela de inicialização, SplashScreen e ícone do aplicativo. Eu tentei todos os métodos, mas não funcionou. Finalmente, acabei de publicar meu aplicativo e baixei meu aplicativo da App Store com o dispositivo que não usei para desenvolvimento . SplashScreen e App Icon funcionam normalmente !!!
fonte
Encontrei solução alternativa e se você realmente deseja corrigir esse problema. A Apple possui alguns mecanismos para armazenar em cache imagens da tela de inicialização, indexadas pelo nome do arquivo de imagem.
Quando você altera as imagens na tela de inicialização e deseja vê-las na próxima execução imediatamente. por favor, use o novo nome da imagem que você alterou e vincule ao novo arquivo de imagem no storyboard ou no xib.
Executar novamente, você verá novas alterações aparecerem.
fonte
Isso funcionou para mim: http://arsenkin.com/launch_screen_image_cache.html
fonte
Desinstale o aplicativo, reinicie o telefone e instale-o novamente ... Isso realmente foi corrigido no meu caso.
fonte
Eu também enfrentei o mesmo problema. Isso acontece porque o simulador / dispositivo iOS armazena em cache a imagem de inicialização quando você inicia o aplicativo. Adicionei algumas modificações à resposta de Brian Trzupek :
fonte
O que funcionou para mim:
O que não funcionou para mim:
Nota:
fonte
Basta conectar seu dispositivo, vá para Xcode> Janela> Dispositivos> Seu dispositivo, agora nos aplicativos instalados, selecione seu aplicativo, clique com o botão direito do mouse e faça o download do contêiner, vá para o arquivo gerado, clique com o botão direito do mouse, Mostrar conteúdo do pacote, AppData, Biblioteca, Caches, e excluir arquivos. Agora vá para Xcode> Janela> Dispositivos> Seu dispositivo> seu aplicativo e clique com o botão direito do mouse para substituir os contêineres.
fonte
Honestamente, não corri o risco de ir ao ar sem ter certeza se isso será atualizado ou não.
Portanto, supondo que você esteja usando xcassets, uma solução simples é:
Ele será atualizado com certeza! (Até testei com o aplicativo já instalado no dispositivo). Não há necessidade de limpar o cache do dispositivo ou algo assim.
fonte
fonte
Ok, então eu descobri o problema. Na versão anterior do meu aplicativo, estávamos usando um XIB da tela de inicialização. Em algum lugar no desenvolvimento desta nova versão, o xib foi excluído e substituído apenas por imagens estáticas de inicialização.
A solução é usar um XIB da tela de inicialização. Percebi que, no momento em que usei um xib da tela de ativação pela primeira vez, o arquivo armazenado no diretório de snapshots foi substituído pelo snapshot do xib.
fonte
Xcode 10 / iOS 12
Depois de tentar todas as coisas mencionadas acima, tive que excluir a visualização de imagem do LaunchScreen e substituí-la por uma nova.
fonte
Esta é a maneira mais rápida que encontrei para resolver esse problema, embora pareça estúpido:
Clique com o botão direito do mouse no
LaunchScreen.xib
arquivo da tela de ativação e selecioneRemove file
e selecioneRemove to trash
. Isso removerá todas as referências do arquivo e suas atualizações anteriores do seu projeto.Vá para o lixo e arraste e solte o arquivo de volta no seu projeto xCode (dentro
yourProjectName
).Limpe e reconstrua.
fonte
Use este pedaço de código para limpar o cache da tela de inicialização:
Uso:
fonte
Teve esse problema também. Sendo um novato total, alterei ingenuamente o LaunchScreen.storyboard para LaunchScreen.xib. A execução falhou (duh), então eu a mudei novamente para .storyboard reexecutou o aplicativo apenas para testar se eu não estraguei mais nada - e a tela antiga não apareceu primeiro. Então, o que quer que eu tenha feito, deve ter liberado o cache antigo.
fonte
Tinha o mesmo problema, mas apenas com a imagem usada no storyboard da tela de lançamento. Mover a imagem do catálogo de ativos alterando seu nome para o pacote de aplicativos (por exemplo, a imagem antiga definida no catálogo de ativos foi chamada launch_logo e a imagem no pacote de aplicativos é chamada launchscreen_logo.png) resolveu o problema.
fonte
Eu acho que isso depende de situações. Quando isso acontece na depuração ou teste, funciona na exclusão de imagem na tela de inicialização. Ou desinstalar seus aplicativos e reiniciar o lançamento.
Mas vai mesmo depois do arquivo, então não resolve com redefinição e limpeza.
fonte
No meu caso, não selecionei AppIcon Source em Configuração do aplicativo -> Geral - > Ícones do aplicativo e iniciar imagens -> Fonte dos ícones do aplicativo
fonte
Experimente no AppDelegate
fonte
Solução Work For Me
Novamente, crie e instale e inicie o aplicativo.
Aproveitar
fonte
Verifique se você executou todas essas etapas
fonte
Tente abrir o simulador, vá para Hardware -> Apagar todo o conteúdo e configurações.
fonte