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

为何OneSignalNotificationServiceExtension导致Expo项目构建报错?

Expo + OneSignal EAS构建报错解决

报错原因

这个警告本质是OneSignalNotificationServiceExtension被同时添加到了Xcode项目的两个分组(Pods和空根分组)里,Xcode判定项目结构存在问题,虽然提示是warning,但会干扰EAS的正常构建流程。

大概率是onesignal-expo-plugin自动配置项目时出现了重复引用,常见于插件和核心库版本适配问题,或者之前构建残留了旧的配置文件导致冲突。

解决方法

方案1:彻底清理后重新安装配置

  • 先卸载两个OneSignal相关库:
    npm uninstall onesignal-expo-plugin react-native-onesignal
    # 用yarn的话执行:yarn remove onesignal-expo-plugin react-native-onesignal
    
  • 清除Expo的原生项目缓存:
    npx expo prebuild --clean
    
  • 重新安装指定版本的库:
    npm install onesignal-expo-plugin@2.0.2 react-native-onesignal@5.0.2
    # yarn用户执行:yarn add onesignal-expo-plugin@2.0.2 react-native-onesignal@5.0.2
    
  • 重新生成原生项目文件:
    npx expo prebuild
    
  • 重新触发EAS构建即可。

方案2:手动修复Xcode项目结构

如果自动清理没效果,直接改Xcode配置:

  • 打开iOS项目的xcworkspace文件(路径:ios/[你的项目名称].xcworkspace)
  • 在左侧导航栏找到OneSignalNotificationServiceExtension,查看它的分组归属
  • 如果它同时出现在Pods组和根分组里,右键点击其中一个重复的引用,选择Remove Reference(注意别选Delete,只是移除引用,不是删除文件)
  • 确保这个扩展只属于根项目分组,而非Pods组
  • 保存项目后重新跑EAS构建。

方案3:检查插件配置是否重复

打开app.json或app.config.js,确认onesignal-expo-plugin只配置了一次,不要重复添加:

{
  "expo": {
    "plugins": [
      [
        "onesignal-expo-plugin",
        {
          "mode": "development" // 根据你的环境改成production
        }
      ]
    ]
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:22:15