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

Expo/React Native应用遭苹果拒审:未用Notification Center却触发违规

Expo/React Native应用未使用Notification Center却因2.5.1条款被App Store拒审

问题描述

应用基于Expo/React Native开发,已在App Store和Google Play上架1年,此前通过苹果审核,近期更新版本时因违反《App Store审核指南》2.5.1条款(性能-软件要求)被拒审。苹果称应用未合规使用Notification Center相关公共API,违反开发者计划许可协议3.3.1条,但开发者自查代码中所有含notif的内容,未发现任何Notification Center相关使用痕迹。应用依赖包如下:

"dependencies": {
    "@react-native-async-storage/async-storage": "^1.15.11",
    "@react-navigation/native": "^6.0.6",
    "@react-navigation/native-stack": "^6.2.5",
    "expo": "~43.0.2",
    "expo-av": "^10.1.3",
    "expo-brightness": "^10.0.3",
    "expo-keep-awake": "^10.0.0",
    "expo-localization": "~11.0.0",
    "expo-status-bar": "~1.1.0",
    "expo-web-browser": "~10.0.3",
    "i18n-js": "^3.8.0",
    "lodash": "^4.17.21",
    "react": "17.0.1",
    "react-dom": "17.0.1",
    "react-native": "0.64.3",
    "react-native-safe-area-context": "^3.3.2",
    "react-native-screens": "^3.9.0",
    "react-native-web": "0.17.1"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9"
  }

排查与解决方法

一、依赖包排查

从给出的依赖列表看,没有直接引入expo-notifications或其他通知相关模块,但需注意:

  • Expo SDK 43的核心包可能在打包时默认包含部分系统API的引用(即使未主动使用),导致苹果检测工具误判
  • 检查间接依赖:执行以下命令排查是否有依赖链引入通知相关模块:
    # npm用户
    npm ls expo-notifications
    # yarn用户
    yarn why expo-notifications
    

二、具体解决步骤

  1. 排除未使用的模块:在app.json的expo.ios配置中添加excludeModules,明确排除通知相关模块,避免打包时误包含:
    "expo": {
      "ios": {
        "excludeModules": ["expo-notifications"]
      }
    }
    
  2. 清理缓存并重新构建:彻底清理Expo缓存后重新打包,确保没有旧代码残留:
    expo r -c
    expo build:ios --clear-cache
    
  3. 提交申诉并提供证据:
    • 准备代码搜索notif关键词的截图(证明无相关代码)
    • 准备依赖树排查结果(证明无通知相关依赖)
    • 在拒审申诉中明确说明:应用从未使用Notification Center相关API,请求苹果重新审核
  4. 升级Expo SDK(可选):若上述方法无效,尝试升级到较新的稳定Expo SDK版本(如44+),新版本优化了模块打包逻辑,减少冗余API引用的可能性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:01:00