인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

audtjs9987님의 프로필 이미지
audtjs9987

작성한 질문수

Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)

Xcode16 업데이트 후 앱이 죽는 이슈

해결된 질문

작성

·

206

·

수정됨

1

안녕하세요. 에구마님
올려주신 강의를 다 듣고,
완성된 코드 기준으로

이번에 Xcode16으로 업데이트 한 후로 로그인 후에 앱이 죽는 문제가 발생하는데,

이에 대한 해결책이 있을까요?

Screenshot 2024-10-01 at 3.21.38 PM.png

답변 4

1

애구마(agmma)님의 프로필 이미지
애구마(agmma)
지식공유자

안녕하세요 audtjs9987님

xcode 16 에서는 동시에 실행되는 코드들을 좀더 엄격하게 관리해서 발생하는 에러인것 같습니다

let userId = user?.id 라고 적고

userId를 다음 함수의 인자로 넣어주시면 에러가 사라집니다.

강의에도 업데이트 해두겠습니다 감사합니다.


extension ProfileViewModel {
    ...

    func checkFollow() async {
        let userId = user?.id
        self.user?.isFollowing =  await AuthManager.shared.checkFollow(userId: userId)
    }
}

extension ProfileViewModel {
    func loadUserCountInfo() async {
        let userId = user?.id
        self.user?.userCountInfo = await UserCountManager.loadUserCountInfo(userId: userId)
    }
}

1

저도 그러네요 ㅠㅠ

애구마(agmma)님의 프로필 이미지
애구마(agmma)
지식공유자

안녕하세요 열쓰님!

위에 답변 참고 부탁드릴게요 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. audtjs9987님.

Xcode 16으로 업데이트 이후 로그인 후 앱이 죽는 문제를 겪고 계시네요. 이는 Swift의 @Observable과 관련된 문제일 가능성이 큽니다. 기존에 유사한 문제가 다루어진 게시글들을 참고하면 도움이 될 것 같습니다.

  1. @Observable에 대한 iOS 버전 문제와 Xcode 업그레이드:

  2. 다음 방법들로 문제를 해결할 수 있습니다:

    • macOS와 Xcode를 최신 버전(최소 Xcode 15.2)으로 업데이트하세요.
    • @Observable 대신 iOS 16 이하에서 사용할 수 있는 대체 방법@StateObject, @ObservedObject, @EnvironmentObject 등을 사용해 보세요.
    • 멀티 스레딩 이슈 해결: 코드에서 발생하는 동시 접근 문제는 여러 스레드에서 동시에 user 프로퍼티에 접근할 때 발생합니다. 이를 방지하기 위해 접근 시점에 동기화 처리를 하거나, @MainActor로 선언된 접근자를 사용해 스레드 안전성을 확보해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

audtjs9987님의 프로필 이미지
audtjs9987
질문자

첨부해주신 코드 기준으로 해결책을 제시해주시면 감사하겠습니다.

audtjs9987님의 프로필 이미지
audtjs9987

작성한 질문수

질문하기