React Native应用上架App Store收到ITMS-90078缺少推送权限报错如何解决?
ITMS-90078: Missing Push Notification Entitlement - 您的应用似乎注册了Apple Push Notification服务,但应用签名的权限列表中未包含'aps-environment'权限。
报错诱因
- 应用二进制包中存在APNs服务注册相关的代码,苹果静态扫描识别后判定应用需要使用推送能力。这里的代码可能是你主动编写的推送逻辑,也可能是React Native第三方依赖(比如推送SDK、统计SDK、Firebase系列组件等)内置的相关代码,哪怕你没有实际调用推送功能,只要存在相关代码就会触发检测。
- Xcode不会自动从Provisioning Profile中同步
aps-environment权限到项目的entitlements文件,哪怕你在开发者后台给App ID开了推送权限,只要本地entitlements文件没有显式配置该权限,打包签名后的包就不会携带对应权限,最终触发该报错。
彻底修复方案
分两种场景处理即可完全避免后续提审触发该提示:
场景1:应用需要使用推送服务
- 登录Apple开发者后台,进入对应App的App ID配置页,确认已经开启「Push Notifications」能力,且已配置好生产环境的推送SSL证书。
- 打开Xcode的iOS项目,选中App主Target,进入「Signing & Capabilities」页,点击左上角+Capability,搜索添加「Push Notifications」,添加后Xcode会自动在项目entitlements文件中写入
aps-environment字段,打包时会自动根据环境匹配对应值(开发包为development,生产包为production)。 - 重新生成Distribution类型的Provisioning Profile,下载安装到本地,确保新的Profile已经包含推送权限。
- 打包前可手动检查entitlements文件,确认存在
aps-environment配置即可。
场景2:应用不需要使用推送服务
- 先排查所有iOS原生依赖,移除未使用的推送相关SDK,或者给第三方SDK配置关闭推送相关的编译开关,从根源移除推送相关代码。
- 如果排查后仍无法消除警告,可直接手动在entitlements文件中添加
aps-environment字段,值设为production即可,添加该权限不会对应用功能产生任何负面影响,也不会被苹果拒绝,可直接避免检测触发。
内容的提问来源于stack exchange,提问作者Ambady Ajay
相关产品推荐
相关产品推荐

