Flutter集成OneSignal:iOS端Xcode提示找不到OneSignalExtension模块
iOS端OneSignal推送编译报错:No such module 'OneSignalExtension' 解决方案
可能的原因及解决步骤
1. 检查并更新Pod依赖
打开iOS项目的Podfile,确认是否包含Notification Service扩展的OneSignal依赖配置:
target 'OneSignalNotificationServiceExtension' do use_frameworks! pod 'OneSignalXCFramework', '>= 5.0.0' end
进入ios目录执行:
pod install
如果已有配置,执行pod update确保依赖是最新版本。
2. 修正Extension目标的Build Settings
在Xcode中选中OneSignalNotificationServiceExtension目标:
- 进入Build Settings,搜索
Framework Search Paths,确认包含$(inherited)和$(PROJECT_DIR)/Pods/OneSignalXCFramework - 搜索
Other Linker Flags,确保添加了-ObjC
3. 替换过时的OneSignalExtension引用
OneSignal 5.x+版本已弃用OneSignalExtension模块,需修改代码:
- 将
import OneSignalExtension替换为import OneSignal - 修改方法调用:
// 替换原didReceive中的调用 OneSignal.didReceiveNotificationExtensionRequest(receivedRequest, with: bestAttemptContent, withContentHandler: contentHandler) // 替换原serviceExtensionTimeWillExpire中的调用 OneSignal.serviceExtensionTimeWillExpireRequest(receivedRequest, with: bestAttemptContent)
4. 清理项目后重新编译
- Xcode中执行Product > Clean Build Folder
- 终端执行
flutter clean && flutter pub get,再重新打开iOS项目编译
内容的提问来源于stack exchange,提问作者Adam O'Neill
相关产品推荐
相关产品推荐

