[ios] iOS 업데이트 후 이전 시작 화면 및 앱 아이콘 유지

최근에 시작 이미지와 앱 아이콘을 바꾼 앱이 있는데 프로젝트의 모든 곳에서 모든 오래된 자산을 제거했습니다. Xcode로 빌드하여 이전 버전에서 새 버전으로 앱을 업그레이드하면 모든 것이 정상입니다. 그러나 이전 버전의 앱을 설치 한 다음 TestFlight에서 업그레이드하면 앱을 종료 한 다음 다시 시작할 때마다 이전 시작 이미지가 잠깐 나타나서 새 시작 이미지가 표시됩니다. 마찬가지로 앱을 닫을 때 새 앱으로 다시 전환하기 전에 이전 앱 아이콘이 잠시 깜박입니다.

iExplorer를 사용하여 앱을 열고 /Library/Caches/Shapshots디렉토리에 저장된 이전 시작 화면의 이미지가 있음을 알았습니다 (어떻게 또는 왜 거기 있는지 알 수 없음). iExplorer를 통해 수동으로 삭제하면 표시가 중지됩니다. 그러나 NSFileManager메소드를 사용하여 코드로 제거하려고하면 이 디렉토리의 파일 삭제가 금지되어 있다는 오류가 발생합니다.

누구든지 전에 이것을 경험하고 조언이 있습니까?



답변

다음을 수행하여 시작 이미지 변경을 테스트하기 위해 스프링 보드 캐시를 확실하게 지울 수 있습니다.

  1. 기기에서 앱 삭제
  2. 장치 전원 끄기
  3. 장치의 전원을 켜고 앱을 설치하고 시작하십시오.

이미지는 매번 올바르게 업데이트됩니다. 부끄러운 나는 장치의 전원을 꺼야하지만 최소한 나는 이런 식으로 발전 할 수 있었다. 나는 이것이 누군가를 돕기를 바랍니다.

시뮬레이터의 경우 시뮬레이터를 다시 시작하면 작동합니다.


답변

이 캐시는 Springboard에서 앱 전환 속도를 높이기 위해 사용됩니다. 이것은 프로덕션 사용자에게 영향을 미치는 문제가 아니며 다음에 Springboard가 앱 스냅 샷을 결정할 때 이론 상으로는 사라져야합니다.

즉, 이것은 당신이 고칠 수있는 문제가 아닙니다. 이것은 귀하의 코드가 아닌 Apple 코드의 버그입니다.

업데이트 : 장치를 다시 시작할 필요가없는 해결 방법이 있습니다.

이것은 두 번째 출시 후에 적용됩니다!

do {
   try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
} catch {
   print("Failed to delete launch screen cache: \(error)")
}

작동 방식에 대한 전체 설명 : https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html


답변

시뮬레이터 만 Reset Contents and Settings...


답변

@InkGolem

프로덕션 사용자에게 영향을 미치는 문제는 아닙니다.

사실이다.

시작 화면, SplashScreen 및 앱 아이콘을 변경했을 때이 문제가 발생했습니다. 모든 방법을 시도했지만 작동하지 않았습니다. 마지막으로 방금 내 앱을 게시 하고 개발에 사용하지 않은 장치로 App store에서 내 응용 프로그램을 다운로드했습니다 . SplashScreen 및 앱 아이콘이 정상적으로 작동합니다 !!!


답변

이 문제를 정말로 해결하려면 해결 방법을 찾았습니다. Apple은 이미지 파일 이름으로 색인을 생성하는 시작 화면의 이미지를 캐시하는 메커니즘이 있습니다.

시작 화면에서 이미지를 변경하고 다음 실행시 해당 변경 사항을 즉시 확인하려는 경우. 변경 한 이미지를 새 이미지 이름으로 사용하고 스토리 보드 또는 xib에서 새 이미지 파일에 연결하십시오.

다시 실행하면 새로운 변경 사항이 나타납니다.


답변

이것은 나를 위해 일했다 : http://arsenkin.com/launch_screen_image_cache.html

다시, 위에서 언급 한 스레드 덕분 에이 문제를 해결할 수있는 방법을 찾았습니다. 새 이미지의 이름이 이전 이미지와 동일한 이름을 가진 경우 이전 이미지와 다른 이름을 지정하고 * .xcassets 폴더를 프로젝트 디렉토리에 연결하고 UIImageView에서 참조하십시오. 그리고 그게 다야. 어리석은 소리는 쉽지만 얼마나 화나게했는지


답변

앱을 제거하고 휴대 전화를 다시 시작한 후 앱을 다시 설치하십시오.이 경우 실제로 해결되었습니다.