Ionic 4 Cordova构建失败 报未声明标识符FIRAnalytics错误
问题原因
两个问题的核心逻辑非常明确:
- 插件自动重装:6.x版本的
cordova-plugin-firebase-messaging本身就将cordova-plugin-firebase-analytics列为强制依赖,手动从package.json删除条目没有任何作用,每次执行插件安装、添加平台操作时,包管理器都会自动拉取对应版本的analytics插件补全依赖。 FIRAnalytics未声明报错:属于iOS端Firebase SDK版本严重不匹配——你当前使用的6.1.0版本analytics插件最高仅支持Firebase iOS SDK 7.x系列,但你给messaging插件锁定的iOS Pod版本是~>8.8.0,跨大版本的SDK存在头文件路径、类名引用的不兼容变更,老版本插件的原生代码无法识别新版本SDK的类,就会触发未声明标识符的编译错误。
修复步骤
- 第一步:对齐插件与SDK版本,二选一即可
- 方案1(保持Firebase SDK 8.x版本,推荐):升级analytics插件到适配SDK 8.x的版本,同时统一两个插件的Pod版本约束。先执行命令升级插件:
然后确认package.json里的插件配置为以下内容,保证两个插件的iOS Firebase版本一致:ionic cordova plugin rm cordova-plugin-firebase-analytics ionic cordova plugin add cordova-plugin-firebase-analytics@7.0.1"cordova-plugin-firebase-analytics": { "IOS_FIREBASE_POD_VERSION": "~> 8.8.0", "ANALYTICS_COLLECTION_ENABLED": "true" }, "cordova-plugin-firebase-messaging": { "ANDROID_FIREBASE_MESSAGING_VERSION": "22.0.+", "ANDROIDX_CORE_VERSION": "1.6.+", "IOS_FIREBASE_POD_VERSION": "~> 8.8.0" } - 方案2(保持6.1.0版本analytics插件):将两个插件的iOS Firebase Pod版本统一降到7.x系列,修改配置中
IOS_FIREBASE_POD_VERSION的值为~> 7.11.0即可。
- 方案1(保持Firebase SDK 8.x版本,推荐):升级analytics插件到适配SDK 8.x的版本,同时统一两个插件的Pod版本约束。先执行命令升级插件:
- 第二步:全量清理缓存后重新构建,依次执行以下命令,避免旧依赖残留导致问题复现:
ionic cordova platform rm ios rm -rf node_modules plugins package-lock.json npm install ionic cordova platform add ios - 第三步:如果重新添加平台后编译仍报错,进入
platforms/ios目录执行pod install --repo-update更新本地CocoaPods的源索引,再执行构建命令即可。
注意:不要尝试强制移除analytics插件,Firebase iOS SDK的Messaging组件本身依赖Core模块包含的Analytics基础能力,硬删插件会导致推送功能出现不可预期的异常。
内容的提问来源于stack exchange,提问作者Ajith Kumar
相关产品推荐
相关产品推荐

