관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] app icon이 변경되지 않는 문제 해결 방법, launch screen 변경되지 않는 문제 해결(캐싱, Library/SplashBoard) 본문

iOS 응용 (swift)

[iOS - swift] app icon이 변경되지 않는 문제 해결 방법, launch screen 변경되지 않는 문제 해결(캐싱, Library/SplashBoard)

jake-kim 2023. 4. 14. 01:01

App Icon이나 Launch Screen 변경 안되는 문제

  • 앱 아이콘이나 launch screen을 변경했지만 반영이 안되는 케이스가 있는데, 캐싱이 되어서 발생되는 현상
    • Simulator에서 내부적으로 캐싱을 사용하는 곳을 삭제하면 해결
    • 캐싱되는 곳은 로컬 경로에 위치 Library/SplashBoard
/Users/jake/Library/Developer/CoreSimulator/Devices/46BE41B9-7845-463D-96ED-751BAAD9464F/data/Containers/Data/Application/7C9475EE-55D1-4AA9-B265-EA49F83E0300/Library/SplashBoard
  • .ktx 파일명으로 존재
    • 이 파일들은 디스크 캐싱되어 있기 때문에 FileManager로 삭제 필요

삭제하기

  • 삭제 방법
    • 해당 디바이스의 캐싱 경로는 NSHomeDirectory()에 있고 디스크 캐싱되어 있기 때문에 FileManager로 삭제 필요
let path = NSHomeDirectory()+"/Library/SplashBoard"
do {
    try FileManager.default.removeItem(atPath: path)
} catch {
    print("launch screen, app icon캐시 삭제 실패: \(error)")
}
  • 삭제 타이밍
    • 아이폰에서 앱을 클릭하면 launch screen이 먼저 보여지고, AppDelegate의 didFinishLaunchingWithOptions가 실행되므로 캐싱이 안되게끔하도록 didFinishLaunchingWithOptions에서 위 삭제하는 코드가 실행되도록 구현

* 참고

https://www.rambo.codes/posts/2019-12-09-clearing-your-apps-launch-screen-cache-on-ios

Comments