관리 메뉴

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

[iOS - swift] LaunchScreen, splash 화면 설정 (+ black screen 에러, testlight에서 UIImageView가 안보이는 문제 해결방법) 본문

iOS 기본 (swift)

[iOS - swift] LaunchScreen, splash 화면 설정 (+ black screen 에러, testlight에서 UIImageView가 안보이는 문제 해결방법)

jake-kim 2021. 3. 21. 00:09

iOS는 첫 등장화면의 dafult는 LaunchScreen.storyboard

  • 실행하면 약 2초정도 흰 바탕화면이 보여지는데, 이것은 os에 필요한 정보들을 disk에서 메모리로 올리는 과정에서 지연이 발생
  • LaunchScreen으로 지정한 ViewController에는 custom class 및 Button과 같은 attributes 배치 불가 (UIImage만 가능)
  • 흰 바탕화면은 xcode에서 디폴트로 LaunchScreen.storyboard를 생성해주고, 이 storyboard의 Storyboard entry point가 설정된 상태 (아래 사진)

Storyboard Entry Point가 설정 되어있는 ViewController

  • 주의: LaunchScreen.storyboard에서 사용하는 UIImageView의 image는 assets.xcassets파일에서 사용하면 testflight에서 image가 비어있는 현상 존재하므로 따로 assets파일 밖에 이미지 파일 생성 후 사용

Assets.xcassets 밖에 파일 생성
Assets.xcassets 외부에 명시된 파일을 UIImageView의 image로 등록

  • 첫 등장화면이 되는 storyboard파일은 info.plist에서 명시

단, Splash.storyboard파일에 `Is Initial View Controller`가 설정되어 있어야 가능

  • launch 로 지정한 .storyboard 파일로 이동하여 Use as Launch Screen 옵션 on
    - 안할경우 black screen

  • LaunchScreen을 지정한 .storyboard파일이 존재하지 않으면 앱을 실행했을 때 검은색 화면 노출
    (메모리로 필요한 정보를 못 올렸으므로 앱입장에서는 resource가 없는 상태여서 검은색 화면 노출)
  • testflight에서 UIImageView가 빈 화면으로 나오는 문제: Assets.xcassets파일에있는 Image를 사용하면 문제 발생하므로, Assets.xcassets밖에 따로 확장자명이 .png로 된 파일을 사용하면 문제 해결
  • LaunchScreen파일의 storyboard에서 auto layout 설정 시, superview로 설정할 경우 black screen 표출되므로 safe area guide로 설정 필요

bottom constraint를 super area기준으로 설정 > black screen 표출되므로 주의

 

 

Comments