向 Ionic 4 项目添加 cordova-plugin-firebase-dynamiclinks 导致无法构建

Posted

技术标签:

【中文标题】向 Ionic 4 项目添加 cordova-plugin-firebase-dynamiclinks 导致无法构建【英文标题】:Addition of cordova-plugin-firebase-dynamiclinks to Ionic 4 project renders unable to build 【发布时间】:2020-05-10 08:47:25 【问题描述】:

在为 ios w xcode 构建 Ionic 4 Cordova 应用程序时如何解决与插件冲突的任何指导,我们将不胜感激。

以下是我的工作插件 - 即使用这些插件成功构建项目。

但是,当尝试使用以下方法添加 cordova-plugin-firebase-dynamiclinks 时:

$ cordova plugin add cordova-plugin-firebase-dynamiclinks --variable APP_DOMAIN="example.ca" --variable PAGE_LINK_DOMAIN="example.page.link";

添加失败并出现错误:

    Failed to install 'cordova-plugin-firebase-dynamiclinks': Error: pod: Command failed with exit code 31
    at ChildProcess.whenDone (/Users/name/project/node_modules/cordova-common/src/superspawn.js:135:23)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
pod: Command failed with exit code 31

通过搜索发现,我已经尝试过:

platforms/ios/pod repo 更新 平台/ios/pod 安装

在添加 cordova-plugin-firebase-dynamiclinks 之前成功执行

我的插件工作集(这些在添加动态链接插件之前构建成功):

cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.0 "cordova-plugin-androidx-adapter"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-firebasex 7.0.1 "Google Firebase Plugin"
cordova-plugin-google-analytics 1.8.6 "Google Universal Analytics Plugin"
cordova-plugin-googleplus 8.2.1 "Google SignIn"
cordova-plugin-inappbrowser 3.2.0 "InAppBrowser"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.3 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-sqlite-storage 3.4.1 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
cordova-support-google-services 1.3.2 "cordova-support-google-services" 

离子信息:

Ionic CLI:5.4.15 (/usr/local/lib/node_modules/ionic) 离子框架:@ionic/angular 4.11.8 @angular-devkit/build-angular:0.800.6 @angular-devkit/原理图:8.1.3 @角/cli:8.2.2 @ionic/angular-toolkit:2.0.0

科尔多瓦:

Cordova CLI:9.0.0 (cordova-lib@9.0.1) 科尔多瓦平台:ios 5.1.1 Cordova 插件:cordova-plugin-ionic-keyboard 2.2.0、cordova-plugin-ionic-webview 4.1.3(和其他 14 个插件)

实用程序:

cordova 分辨率:0.8.1 本机运行(可用更新:0.3.0):0.2.8

系统:

ios-sim : 8.0.2 NodeJS : v10.16.3 (/usr/local/bin/node) npm:6.13.6 操作系统:macOS Mojave Xcode:Xcode 11.3.1 构建版本 11C504

【问题讨论】:

你的命令前面没有离子。应该以“ionic cordova plugin add ...”开头 【参考方案1】:

cordova-plugin-firebase-dynamiclinkscordova-plugin-firebasex 冲突。

所以你需要同步Firebase Dependency

查看 Podfile 示例

    pod 'Firebase/Core', '6.17.0'
    pod 'Firebase/Auth', '6.17.0'
    pod 'Firebase/Messaging', '6.17.0'
    pod 'Firebase/Performance', '6.17.0'
    pod 'Firebase/RemoteConfig', '6.17.0'

firebase 版本是“6.17.0”。这是因为firebasex

所以你必须改变 plugins/cordova-plugin-firebase-dynamiclinks/plugin.xml

<pods>
    <pod name="Firebase/Analytics" spec="~> 6.17.0" />
    <pod name="Firebase/DynamicLinks" spec="~> 6.17.0" />
</pods>

它必须与 firebasex 的 Firebase 依赖相同。

【讨论】:

以上是关于向 Ionic 4 项目添加 cordova-plugin-firebase-dynamiclinks 导致无法构建的主要内容,如果未能解决你的问题,请参考以下文章

在 Ionic 3 应用程序上收到推送通知时调用哪个函数?

UIWebView 向 Apple 提交 ionic 应用程序时出错

Ionic 4:NFC 无法导入 NFC 和 Ndef

使用 Ionic 进行谷歌地图和地理定位:对象不是函数

ionic2 typescript 编译错误,用于将方法添加到字符串或数字

Ionic 4 - 自定义上下文菜单