WeatherKit 是 Apple 提供的天气数据框架,面向 Swift 6.3 / iOS 26+ 应用,通过 WeatherService 拉取天气数据。
用途:在 App 中集成天气信息,包括当前实况、逐小时(默认自当前小时起 25 小时)、逐日(默认自当天起 10 天)预报、天气警报,以及限定区域内的分钟级降水预报和可用性查询。
主要能力:WeatherService.shared 或自建实例(Sendable、线程安全)返回 Weather 对象,含 currentWeather、hourlyForecast、dailyForecast、weatherAlerts 等。可用 WeatherQuery 选择性拉取 .current、.hourly、.daily、.minute、.alerts、.availability,减少配额消耗和响应体积。支持自定义日期范围,如 .daily(startDate:endDate:)。需展示 Apple Weather 归属,attribution 提供 combinedMarkLightURL、combinedMarkDarkURL、squareMarkURL、legalPageURL、legalAttributionText 等。
使用方式:在 Xcode 启用 WeatherKit 能力(添加 entitlement),在 Apple 开发者门户为 App ID 启用 WeatherKit,需有效的 Apple Developer Program 会员资格;若用设备定位,在 Info.plist 添加 NSLocationWhenInUseUsageDescription。导入 WeatherKit 与 CoreLocation 后调用 weather(for:including:)。分钟预报返回可选值,不支持区域为 nil,勿强解包。
限制:并非所有数据集在所有国家/地区可用,拉取前可用 .availability 检查;分钟预报仅限部分区域。每次数据集查询计入 API 配额,应只取所需数据并缓存(建议 5–15 分钟);缺少归属展示可能违反条款并影响 App Review。温度等测量值建议用 Measurement.formatted() 做本地化格式化。