Ionic 3 + cordova-ios@4.5.4集成Firebase Crashlytics问题咨询
Ionic 3 集成 Firebase Crashlytics 问题解答
1. cordova-ios@5.0.0 要求的 Node.js 版本
cordova-ios@5.0.0 要求 Node.js 版本 ≥8.0.0,同时配套的 npm 版本需要 ≥5.0.0。
2. 适配 cordova-ios@4.5.4 的 Firebase Crashlytics 插件
可以选用 cordova-plugin-firebase-crashlytics 的 1.x 系列版本(如 v1.3.0),这类早期版本的插件在引擎声明中明确支持 cordova-ios ≥4.0.0,完全适配你的 cordova-ios@4.5.4 环境。安装时指定版本即可:
cordova plugin add cordova-plugin-firebase-crashlytics@1.3.0
另外,也可以考虑旧版的 cordova-plugin-firebase(v2.x 及以下),不过该插件包含 Firebase 全功能模块,仅需 Crashlytics 的话,专用插件更轻量化。
3. 动态配置 Firebase 配置文件到 platforms 文件夹
由于 platforms 目录是 Cordova 自动生成的,直接修改会被后续 cordova prepare 或 ionic cordova build 覆盖,推荐用 Cordova 钩子脚本 实现自动复制配置文件,步骤如下:
- 第一步:将 Firebase 控制台下载的
GoogleService-Info.plist放到项目根目录的resources/ios文件夹下(无此目录则手动创建)。 - 第二步:在项目根目录的
hooks文件夹中创建脚本文件after_prepare_copy_firebase_config.js,内容如下(注意替换YourIonicAppName为你的实际项目名称):
const fs = require('fs'); const path = require('path'); module.exports = function(context) { const projectRoot = context.opts.projectRoot; const iosPlatformPath = path.join(projectRoot, 'platforms', 'ios'); const appName = 'YourIonicAppName'; const sourceConfig = path.join(projectRoot, 'resources', 'ios', 'GoogleService-Info.plist'); const targetConfig = path.join(iosPlatformPath, appName, 'GoogleService-Info.plist'); if (fs.existsSync(sourceConfig) && fs.existsSync(iosPlatformPath)) { fs.copyFileSync(sourceConfig, targetConfig); console.log('Firebase iOS 配置文件已成功复制到 platforms 目录'); } else { console.warn('未找到 Firebase 配置文件或 iOS 平台目录'); } };
- 第三步:在项目的
config.xml中注册这个钩子,让它在prepare阶段执行:
<platform name="ios"> <hook type="after_prepare" src="hooks/after_prepare_copy_firebase_config.js" /> </platform>
这样每次执行 ionic cordova prepare ios 或构建命令时,配置文件都会自动同步到正确的位置,无需手动修改 platforms 目录下的文件。
内容的提问来源于stack exchange,提问作者Vinicius S. de Oliveira
相关产品推荐
相关产品推荐

