Flutter集成OneSignal在iOS17(Xcode15)运行时报错
解决OneSignal框架找不到及链接器错误的方案
针对你在Xcode 15中使用onesignal_flutter ^5.0.1遇到的Framework 'OneSignal' not found和链接器退出码1错误,可按以下步骤排查修复:
1. 彻底清理缓存与旧构建文件
- 删除项目根目录下的
Pods文件夹、Podfile.lock文件,以及iOS目录下的Runner.xcworkspace - 执行命令清理Flutter和CocoaPods缓存:
flutter clean rm -rf ios/Pods ios/Podfile.lock ios/Runner.xcworkspace rm -rf ~/Library/Caches/CocoaPods
2. 重新安装Pods并确认配置
确保Podfile中已正确配置pod 'OneSignalXCFramework', '>= 5.0.0', '< 6.0',且将use_frameworks!替换为静态链接模式(OneSignal 5.x推荐):
use_frameworks! :linkage => :static
然后进入iOS目录执行更新安装:
cd ios pod install --repo-update
3. 检查Xcode项目的框架引用
- 打开
ios/Runner.xcworkspace,进入Runner目标的Build Phases → Link Binary With Libraries - 移除旧的
OneSignal.framework引用(若存在),确认仅保留OneSignalXCFramework - 检查Build Settings → Framework Search Paths,确保包含
$(inherited)和Pods/OneSignalXCFramework路径
4. 适配Xcode 15链接器变更
Xcode 15的链接器规则有调整,可做以下设置:
- 在Runner目标的Build Settings → Other Linker Flags中添加
-ld64,强制使用旧版链接器 - 将Build Settings → Enable Bitcode设置为
No(OneSignal 5.x不支持Bitcode)
5. 重新拉取依赖并构建项目
执行以下命令确保依赖同步,再重新运行项目:
flutter pub get flutter run
内容的提问来源于stack exchange,提问作者Dhruv Chandrani
相关产品推荐
相关产品推荐

