You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅Apple Watch应用因缺失HealthKit Info.plist密钥遭二进制拒绝

针对Apple Watch HealthKit应用二进制拒绝的解决方案

这个问题确实是WatchOS应用特有的配置坑——我之前帮好几个开发者排查过类似的情况,核心问题出在HealthKit权限描述密钥的放置位置上,和iOS应用的配置逻辑完全不一样。

为什么iOS应用没问题,但WatchOS不行?

iOS应用只需要在主App目标的Info.plist中添加NSHealthShareUsageDescription和NSHealthUpdateUsageDescription就够了,但WatchOS应用有两个核心目标:

  • Watch App(负责界面资源、应用入口)
  • WatchKit Extension(负责业务逻辑、HealthKit调用)

苹果明确要求,WatchOS应用的HealthKit权限描述必须放在**Watch App目标的Info.plist**里,而不是Extension的配置文件中。很多开发者会习惯性地把密钥加到Extension的Info.plist里,这就会导致审核系统检测不到权限描述,直接触发二进制拒绝。

你需要执行的排查修复步骤:

  • 确认密钥位置:打开Xcode,选中Watch App目标(不是Extension),找到对应的Info.plist,检查是否已经添加了那两个密钥,且描述内容清晰明确(比如"需要访问您的健康数据以同步每日运动记录",不能留空或写模糊的套话)。
  • 清理缓存重新归档:有时候Xcode会缓存旧的配置文件,导致上传的二进制包没有包含最新的Info.plist。用Cmd+Shift+K清理项目,再重新Build和Archive。
  • 验证归档包内容:右键归档文件 → 显示包内容,找到Products/Applications/[你的Watch App名称].app/Info.plist,打开确认两个密钥确实存在。这一步能帮你排除Xcode打包时的疏漏。
  • 检查Capability配置:确保Watch App和WatchKit Extension目标都开启了HealthKit权限(在Xcode的Signing & Capabilities面板中添加HealthKit),虽然权限描述在Watch App,但Extension也需要开启权限才能正常调用HealthKit API。

如果以上步骤都完成后还是被拒,可以尝试提交申诉,说明你已经正确配置了两个权限密钥,并附上归档包中Info.plist的截图,审核团队通常会重新检查你的提交。

内容的提问来源于stack exchange,提问作者Jake Derouin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:54:06