Back to Blog

WeatherKit 配置大坑:为什么两个地方都要配置?

表盘专辑团队
iOS开发WeatherKit踩坑Apple Developer

如果你正在集成 WeatherKit,遇到了这个错误:

Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2

恭喜你,踩了 Apple 最傻逼的设计之一。

问题根源

WeatherKit 需要在两个地方启用,缺一不可:

  1. Capabilities 标签页 - Xcode 会自动勾选 ✅
  2. App Services 标签页 - 必须手动勾选 ❌

大多数人(包括我)只在 Xcode 中添加了 WeatherKit Capability,然后就以为搞定了。错!

解决方案

  1. 打开 Apple Developer Portal
  2. 找到你的 Bundle ID(例如 com.yourcompany.app
  3. 点击 Edit
  4. 检查两个标签页
    • Capabilities 标签页 → 确认 WeatherKit 已勾选
    • App Services 标签页这里才是关键! 如果没勾选,勾上它
  5. Save
  6. 等待 30-60 分钟(Apple 服务器传播时间)
  7. Xcode → Settings → Accounts → Download Manual Profiles
  8. Clean Build + 重装 App

WeatherKit App Services 配置截图

为什么会这样?

因为 Apple 把配置分成了两个标签页:

  • Capabilities:给开发者看的,Xcode 会自动同步
  • App Services:给 Apple 服务器看的,必须手动勾选才能生成 JWT Token

如果只勾选了 Capabilities,Apple 的认证服务器会拒绝你的 App,返回 Error Code 2。

吐槽

为什么要搞两个标签页?为什么 Xcode 不能自动勾选 App Services?为什么没有明确的文档说明?

这个坑困扰了无数开发者,StackOverflow 和 Apple 论坛上到处都是这个问题。

希望这篇博客能帮你省下几个小时的调试时间。


相关资源: