纯watchOS应用位置权限描述配置提交报错求助
纯watchOS独立应用位置权限配置解决方案
问题根源
纯watchOS独立应用的权限触发逻辑特殊:仅在Extension的Info.plist加NSLocationWhenInUseUsageDescription不会弹出权限请求;仅在App侧加则弹窗显示系统默认描述而非自定义文本;两者都加虽正常显示,但提交时会因App侧存在该键被审核报错。
正确配置步骤
- 仅在WatchKit Extension的
Info.plist中配置自定义描述
打开Extension的Info.plist,添加NSLocationWhenInUseUsageDescription键,填入你的自定义权限说明(比如"获取位置用于提供精准的XX服务")。 - 在WatchKit App的
Info.plist中添加空的权限声明
打开App的Info.plist,添加NSLocationWhenInUseUsageDescription键,但不设置任何值(留空)。这样既能触发权限弹窗,又不会触发审核报错。 - 代码中正确触发权限请求
在Extension的业务逻辑里,通过用户操作(比如按钮点击)触发权限请求,示例代码:
避免在应用启动时自动请求权限,防止被判定为滥用权限。import CoreLocation class LocationHandler { private let locationManager = CLLocationManager() func requestPermission() { guard CLLocationManager.locationServicesEnabled() else { return } locationManager.requestWhenInUseAuthorization() } }
额外排查项
- 核对
Info.plist键名拼写:确保是NSLocationWhenInUseUsageDescription,大小写完全一致。 - 确认watchOS部署版本:独立应用要求至少watchOS 6.0,若版本过低可能导致权限逻辑异常。
- 清理缓存后重新归档:执行
Product > Clean Build Folder,再重新打包提交,避免缓存导致的配置不生效。
内容的提问来源于stack exchange,提问作者rmvz3
相关产品推荐
相关产品推荐

