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

React Native iOS构建失败:OneSignalNotificationServiceExtension中提示“no such module 'OneSignalExtension'”

React Native iOS构建失败:OneSignalNotificationServiceExtension中提示“no such module 'OneSignalExtension'”

看起来你遇到的问题是OneSignal v5.x版本的Notification Service Extension导入逻辑不匹配导致的,结合你的配置和报错信息,我整理了几个针对性的解决步骤:

1. 修正NotificationService.swift的导入语句

OneSignal v5.x已经将Extension相关的API整合到主OneSignal模块中,不再需要导入OneSignalExtension。你需要修改OneSignalNotificationServiceExtension/NotificationService.swift的内容:

将开头的导入代码:

import UserNotifications
import OneSignalExtension

替换为:

import UserNotifications
import OneSignal

同时,文件中调用OneSignalExtension的方法也要同步改成OneSignal:

// 替换原方法调用
OneSignalExtension.didReceiveNotificationExtensionRequest(self.receivedRequest, with: bestAttemptContent, withContentHandler: self.contentHandler)
// 改为
OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: bestAttemptContent, withContentHandler: self.contentHandler)

// 替换过期处理方法
OneSignalExtension.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
// 改为
OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: bestAttemptContent)

2. 确认Podfile的Extension Target配置正确

你的Podfile中已经为Extension target添加了OneSignalXCFramework依赖,这部分是正确的,但需要确保执行pod install后,该依赖确实关联到了Extension target:

target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignalXCFramework', '>= 5.0.0', '< 6.0'
end

3. 检查Xcode中Extension Target的Build Settings

打开Xcode,选中OneSignalNotificationServiceExtension target,进入Build Settings标签,确认以下配置:

  • Framework Search Paths:确保包含$(inherited)和${PODS_ROOT}/OneSignalXCFramework(如果没有,手动添加这两个路径)
  • Other Linker Flags:确保包含$(inherited)
  • Always Embed Swift Standard Libraries:设置为Yes(Swift编写的Extension必须开启这个配置)

4. 重新清理并安装依赖

虽然你已经执行过清理操作,但可以再完整执行一次,彻底清除缓存问题:

# 删除Pods和本地DerivedData缓存
rm -rf ios/Pods ios/DerivedData
rm -rf ~/Library/Developer/Xcode/DerivedData
# 重新安装Pods依赖
cd ios
pod deintegrate
pod install --repo-update
cd ..

5. 验证Xcode Target依赖

在Xcode中,选中OneSignalNotificationServiceExtension target,进入Build Phases标签:

  • 检查Target Dependencies是否包含Pods-OneSignalNotificationServiceExtension
  • 检查Link Binary With Libraries是否包含OneSignalXCFramework

完成以上步骤后,重新尝试构建项目,应该就能解决找不到模块的问题了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:33:05