서비스 하고 있는 App 하나의 리팩토링을 끝낸후 나머지 앱을 리팩토링 하던 중 아래와 같은 오류 발생

 

Thread 1: Swift runtime failure: Unexpectedly found nil while implicitly unwrapping an Optional value

 

Crash 발생시 함수 스택에도 표기되지 않고 storyboard나 xib파일이 아예없기에 아주 당황 ;;;

혹시몰라 다시 체크해보았는데 당연히 코드레벨에서 옵셔널을 강제 언래핑하는곳이 아무곳도 없었음

 

크래시가 발생하는 화면 처음부터 디버깅 시작

아래 함수 호출 시 크래시 발생

func getSectionPositions() async

 

기존에 리팩토링이 끝난 앱에서 공통코드로 뺀 부분이고 정상적으로 동작하는 것까지 검증이 끝난 함수인데 아주 당황;;

 

한줄한줄 디버깅해보니 아래 코드에서 Crash ...

// titleScript = "document.querySelector('#\(rawValue) span')?.textContent"
guard let titleResult = try? await webView.evaluateJavaScript(type.titleScript),
      let title = titleResult as? String else { return }

webView에서 특정 content를 가져오는 script인데 try?를 통해 강제 언래핑해제도 아닌데 터져버림 ...

 

 

 

혹시나 해서 do catch로 감싸 실행해보니 정상적으로 동작 ... 

do {
    ...
    let titleResult = try await webView.evaluateJavaScript(type.titleScript)
    let title = titleResult as? String
    ...
} catch {
    LogManager.log(level: .error, self, #function, error, "title is Invalid : \(type.titleScript)")
    continue
}

 

 

 

혹시나 하는 마음에 몇일 후 guard let으로 재 실행

// titleScript = "document.querySelector('#\(rawValue) span')?.textContent"
guard let titleResult = try? await webView.evaluateJavaScript(type.titleScript),
      let title = titleResult as? String else { return }

 

정상적으로 동작 ;;;

 

뭐가 문제인지 결국 찾지 못했다 ....

'iOS > Trouble Shooting' 카테고리의 다른 글

[iOS] KakaoOpenSDK에서 Concurrency 사용시 App Crash  (0) 2025.05.11

+ Recent posts