발생 일시: 2024-12-30
발생 환경: iOS 16.6, Xcode 16.2, UIKit 사용
문제 내용:
print
문 출력이 로그에 나타나지 않음.SceneDelegate
에서 window
또는 rootViewController
가 제대로 설정되지 않았을 가능성.MainTabBarController
초기화 중 오류 발생 가능성.Storyboard Name
항목이 남아 있어, 스토리보드를 찾으려다 실패했을 가능성.간단한 테스트용 뷰컨트롤러로 설정하여 SceneDelegate가 호출되는지 확인:
func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
guard let windowScene = (scene as? UIWindowScene) else { return }
let window = UIWindow(windowScene: windowScene)
let testViewController = UIViewController()
testViewController.view.backgroundColor = .blue
window.rootViewController = testViewController
window.makeKeyAndVisible()
self.window = window
print("Window initialized: \(window.debugDescription)")
print("Root ViewController: \(String(describing: window.rootViewController))")
}
결과: 파란색 화면이 나타나 SceneDelegate가 호출되고 있음이 확인됨.
MainTabBarController
가 초기화 중 오류가 없는지 확인:
class MainTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
let testVC = UIViewController()
testVC.view.backgroundColor = .red
testVC.tabBarItem = UITabBarItem(title: "테스트", image: nil, selectedImage: nil)
viewControllers = [testVC]
}
}
결과: 정상적으로 빨간 화면과 탭 바가 표시됨. MainTabBarController는 정상 동작.
Storyboard Name 항목을 삭제
결과: Info.plist 설정 오류가 제거됨.
Derived Data 삭제:
rm -rf ~/Library/Developer/Xcode/DerivedData
Xcode에서 Shift + Command + K를 눌러 클린 빌드 수행.
결과: 앱 캐시 문제 제거 후 앱이 정상적으로 빌드됨.
시뮬레이터 메뉴에서 Device > Erase All Content and Settings를 선택하여 초기화 후 다시 실행.
결과: 시뮬레이터 문제도 제거됨.
print
를 활용해 진입점과 초기화 과정을 점검.
헐 엄청 깔끔하게 정리잘하시네요.. 향후 개선사항까지 ㅠㅠ 저두 트러블슈팅작성할때 좀더 두서있게 적어야겠어여..