WeatherKit 配置大坑:为什么两个地方都要配置?
•表盘专辑团队
iOS开发WeatherKit踩坑Apple Developer
如果你正在集成 WeatherKit,遇到了这个错误:
Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2
恭喜你,踩了 Apple 最傻逼的设计之一。
问题根源
WeatherKit 需要在两个地方启用,缺一不可:
- Capabilities 标签页 - Xcode 会自动勾选 ✅
- App Services 标签页 - 必须手动勾选 ❌
大多数人(包括我)只在 Xcode 中添加了 WeatherKit Capability,然后就以为搞定了。错!
解决方案
- 打开 Apple Developer Portal
- 找到你的 Bundle ID(例如
com.yourcompany.app) - 点击 Edit
- 检查两个标签页:
- Capabilities 标签页 → 确认 WeatherKit 已勾选
- App Services 标签页 → 这里才是关键! 如果没勾选,勾上它
- Save
- 等待 30-60 分钟(Apple 服务器传播时间)
- Xcode → Settings → Accounts → Download Manual Profiles
- Clean Build + 重装 App

为什么会这样?
因为 Apple 把配置分成了两个标签页:
- Capabilities:给开发者看的,Xcode 会自动同步
- App Services:给 Apple 服务器看的,必须手动勾选才能生成 JWT Token
如果只勾选了 Capabilities,Apple 的认证服务器会拒绝你的 App,返回 Error Code 2。
吐槽
为什么要搞两个标签页?为什么 Xcode 不能自动勾选 App Services?为什么没有明确的文档说明?
这个坑困扰了无数开发者,StackOverflow 和 Apple 论坛上到处都是这个问题。
希望这篇博客能帮你省下几个小时的调试时间。
相关资源: