WidgetKit을 사용하여 위젯 기능을 구현하던 중 마주한 오류다. 시뮬레이터 혹은 실기기를 통해 빌드할 때 테스트하는 환경(scheme)에서 위젯이 지원하지 않는 크기(widget Family)가 요청될 경우 발생하는 오류다. 위젯 관련 기능을 처음 만들다보니 한참을 헤맸다.
struct weatherFitWidget: Widget {
let kind: String = "WeatherFitWidget"
var body: some WidgetConfiguration {
AppIntentConfiguration(kind: kind, intent: ConfigurationAppIntent.self, provider: Provider()) { entry in
weatherFitWidgetEntryView(entry: entry)
.containerBackground(.fill.tertiary, for: .widget)
}
.contentMarginsDisabled()
.configurationDisplayName("추천 옷차림")
.description("현재 기온에 맞는 옷차림을 추천합니다.")
.supportedFamilies([.systemSmall]) //위젯이 지원하는 크기 종류
}
}
마지막 라인의 supportedFamilies() 함수를 통해 지원하는 위젯의 크기를 정해줄 수 있는데, 본인은 작은 사이즈의 위젯만 우선적으로 서비스할 생각이라 .systemSmall 하나만 지원하게 작성하였다. *여러 개를 지원할 경우 지원하고 싶은 종류를 다 적으면 된다.
작동 환경을 테스트하려고 빌드하게 될 경우, xcode에는 ".systemMedium 사이즈의 위젯을 설치하라"는 scheme이 작성되어있는데 해당 프로젝트는 .systemSmall 사이즈만 지원을 하니 거기서 문제가 발생한 것. 아마 처음 widgetExtension을 생성하면서 생성되는 기본 scheme으로 추정된다.
xcode의 메뉴 중 "Product - Scheme - Edit Scheme" 메뉴로 진입하면 테스트 환경에서 어떤 사이즈의 위젯을 설치할지 설정해 줄 수 있다. 들어가 보니 systemMedium으로 설정이 되어있어서 systemSmall로 바꾸어주니 오류가 사라졌다.
'iOS > errors' 카테고리의 다른 글
async/await 그리고 MainActor (1) | 2024.03.24 |
---|---|
rsync error: some files could not be transferred (code 23) (2) | 2023.04.27 |
xcode 시뮬레이터에서 MKMapView를 불러오지 못할 때 (0) | 2022.10.18 |
[google admob] Not Determined 오류 (0) | 2022.07.08 |
FloatingPanel 레이아웃 관련 (0) | 2021.08.23 |