iOS应用配置NSLocation Always权限后上传App Store Connect遭拒原因咨询
以下是可能导致拒件的几个核心原因:
权限描述未区分前台/后台场景
你设置的NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUseUsageDescription内容完全一致,不符合苹果审核要求。Always权限的描述必须明确说明后台持续使用定位的具体业务场景,比如“后台持续定位为您实时追踪快递配送进度”,而When In Use只需说明前台使用的用途,两者不能混淆。苹果需要用户清晰知晓应用为何需要在后台获取定位权限。权限请求流程不符合规范
iOS系统要求,申请Always定位权限必须遵循“先请求When In Use,用户同意后再请求Always”的两步流程,不能直接发起Always权限请求。如果代码跳过前置的When In Use申请,直接请求Always权限,会触发审核拒绝。后台定位的必要性未充分说明
即使开启了Location Updates后台模式,苹果会严格审核应用是否真的需要持续后台定位。如果应用场景可以用更轻量化的方案替代(比如区域监听Region Monitoring、显著位置变更Significant Location Change),却滥用持续后台定位权限,审核会被驳回。同时,你需要在App Store Connect的审核备注或功能说明里,明确阐述后台定位对应用核心功能的必要性。缺少旧版本系统兼容的权限键
如果你的应用支持iOS 10及更早版本,info.plist中还需要添加NSLocationAlwaysUsageDescription键并补充对应的描述。虽然当前主流系统用NSLocationAlwaysAndWhenInUseUsageDescription,但未添加旧版本键可能导致审核不通过。实际功能与权限描述不匹配
审核人员会验证应用的实际功能是否和权限描述一致。如果应用没有实现描述中提到的后台定位功能,或者功能逻辑和描述不符,也会被拒。
内容的提问来源于stack exchange,提问作者Runnan

