서비스 하고 있는 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 |
|---|