반응형
앱이 특정 케이스에서 crash 되는 오류가 발생.
오류를 보니 EXC_BREAKPOINT 라는 exception이 발생했다.
애플 문서를 보면,,
trace trap이 특정 지점에 프로세스를 중단했다는 말이라고 하는데..
swift 런타임은 복구할 수 없는 오류가 발생했을 경우 trace trap을 사용해서 프로세스를 중단시킨다고 한다.
https://developer.apple.com/documentation/xcode/addressing-crashes-from-swift-runtime-errors
관련 문서를 보면 nil 이 될수 있는 optional 변수를 force unwrap할 때 발생한다고 한다.
exception type 명 답게 코드상의 중단점을 제공한다.
코드를 확인해 보니
if(..) {
let currUrl = webView.url
if currUrl!.path.contains("먀먀") {
.
.
}
}
이렇게 nil 이 될 가능성이 무궁무진한 변수를 force unwraping 해주고 있었다.
보통은 xcode에서 해당 에러를 잡아주는데,, 특정 조건(if) 안에서 발생했기 때문인지 오류가 나지 않았다.
그러다 보니 앱을 발행했을 때 런타임 오류가 나버림.
if(..) {
let currUrl = webView.url?.path ?? ""
if currUrl.contains("먀먀") {
.
.
}
}
위와 같이 nil 경우에 대한 default 값을 넣어주는 방법으로 오류를 막았다.
반응형
'개발 > ios' 카테고리의 다른 글
Swift 기본 문법과 데이터 타입 (0) | 2023.10.11 |
---|---|
[Swift] hierarchy 문제 (0) | 2022.08.30 |
[IOS/Swift] 앱 심사 거절 사유 - Guideline 2.1 - Performance - App Completeness (0) | 2022.08.30 |
[IOS/Swift] 앱 심사 거절 사유 - 4.2.0 Design: Minimum Functionality (0) | 2022.08.30 |