更新 Cordova 插件导致插件失败

Posted

技术标签:

【中文标题】更新 Cordova 插件导致插件失败【英文标题】:Updating Cordova Plugin results in failed plugin 【发布时间】:2014-05-04 20:03:42 【问题描述】:

我正在运行 Cordova 3.4.1,并决定更新我拥有的唯一一个插件 Console。我是根据 2014 年 4 月 23 日的插件更新 (http://cordova.apache.org/news/2014/04/23/plugins.release.html) 做的。

更新是通过首先删除然后重新添加插件来完成的。换句话说:

cordova plugin rm org.apache.cordova.console
cordova plugin add org.apache.cordova.console

然后我跑了

cordova build

它做了很多巫术,之后我通过 Xcode 在 ios 上编译并运行了该应用程序。 结果是这个失败:每次我的代码调用 console.log 时,我都会在 XCode 调试器输出中得到这个错误

CDVPlugin class CDVLogger (pluginName: Console) does not exist.
ERROR: Plugin 'Console' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
 -[CDVCommandQueue executePending] [Line 158] FAILED pluginJSON = [
  "INVALID",
  "Console",
  "logLevel",
  [
    "LOG",
    "text i want to see"
  ]
]

很明显,更新插件的过程无法正常工作。如何自己解决这个问题?如果我这样做了,它会影响 Cordova 团队的任何后续修复吗?

FWIW:我重复了这个过程,尝试了cordova platform update ios,但无济于事。鉴于所有神秘的 Xcode 配置和构建东西,我不愿意重新安装整个东西,并希望有一个简单的修复......

【问题讨论】:

尝试删除iOS平台,然后重新添加。然后构建并查看问题是否消失。 【参考方案1】:

我将项目与我保持正常工作的早期版本进行了比较,并提出了这个修复:

在 Xcode 中,在您的 Phonegap 或 Cordova 项目下,选择

Target -> Build Phases -> Compile Sources

将您的插件添加到那里的列表中,在这种情况下,CVLogger.m 位于“插件”下的文件结构中。

在此之后,项目编译没有错误并且控制台插件工作。无需为此重新安装和重新配置整个项目...

【讨论】:

以上是关于更新 Cordova 插件导致插件失败的主要内容,如果未能解决你的问题,请参考以下文章

Cordova安装设置代理和引入插件

Cordova 通知插件安装失败 (Cordova 3.6)

cordova android 6.3.0 的相机和地理定位插件问题

在 Ionic 2 中使用第三方 cordova 插件和 TypeScript

Phonegap 文件传输插件导致 Android 构建失败

Cordova google-analytics-plugin 导致 phonegap iOS 构建失败