【问题标题】:Plugin not found error building a custom plugin in Xcode在 Xcode 中构建自定义插件时未找到插件错误
【发布时间】:2015-12-30 23:31:05
【问题描述】:

我是 phonegap 的新手,我想尽可能多地学习。我跟着 this tutorial 为 iOS 构建原生自定义插件,但是当我在 Xcode 上构建我的项目时,它给了我以下信息:

错误: 未找到插件“FileWriter”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。
2015-10-02 22:10:07.168 MyCPlug[2673:196404] -[CDVCommandQueue executePending] [第 159 行] 失败
pluginJSON = ["FileWriter247765134","FileWriter","cordovaGetFileContents",[]]

我已经跟踪了每一个细节并尝试了多次但我没有成功。

【问题讨论】:

  • 写一个插件是phonegap最难的事情。如果这是你的目标,我会先写一些应用程序——这样你就可以理解这个过程。此时,ERROR 表示您还不够了解。
  • @JesseMonroy650 我不明白为什么会这样。是否与我正在使用的 phonegap 版本有关,或者新的 xcode 不支持 phonegap。我已经阅读了许多教程,每个教程都有些相同,并且我为自定义插件遵循的每个教程都给了我同样的错误。我想在我的 phonegap 应用中使用一些本机代码。
  • 那个教程很老了,看官方插件开发指南cordova.apache.org/docs/en/5.1.1/…

标签: ios cordova phonegap-plugins phonegap-build


【解决方案1】:

@哈桑,
正如我所说,Cordova/Phonegap 的插件是人们可以承担的最艰巨的任务之一。部分原因是因为 Cordova/Phonegap 是一个移动的目标。

首先,它会很丑。
例如,在过去两 (2) 周内,Apple 发布了从 8.x 到 iOS 9.0.1 的移动设备升级。不用说,这让很多很多开发人员措手不及。几天后,Phonegap Build 在周末进行了一次*未宣布的*从 3.7.0cli-5.2.0 的升级。对于志愿者支持小组,我们完全不知道。直到 20 多个小时过去后,一位开发人员才发现了这一点,主要是从所看到的模式。 (2 天后 Adob​​e/phonegap admitted to as much in this tweet)不用说这很烦人,但不是问题的根源。同样,它是一个移动的目标。

现在获取您的答案
首先,我会给你一个我写的FAQ的链接。应用解决方案(如下)后,我会阅读它,但不会关注许多链接。该文档旨在作为应用程序开发人员的快速阅读,而不是插件开发人员。你会找到有用的信息,但不是你需要的答案。
Top Mistakes by Developers new to Cordova/Phonegap
我假设你已经阅读了这篇文章,无论如何我都包括Plugin Development Guide

这是我对此的看法;这是一个固定的答案。

来自 Phonegap Build 论坛,Petra Adds

我要补充一点:没有公告,PGB 将默认 PGB 版本从 3.7.0 更改为 cli-5.2.0。这导致所有未在 config.xml 中设置 'phonegap-version' 的人都面临突然需要启动画面和白名单插件以及配置和 HTML 中的额外白名单规范。

此外,一些插件似乎无法使用 cli-5.2.0 正确构建,导致有关“Class ***.java”的日志文件错误消息。

FWIW:Phonegap Build admitted to as much in this tweet

快速修复将此添加到您的config.xml
<preference name="phonegap-version" value="3.7.0" />

否则Top Mistakes by Developers new to Cordova/Phonegap你已经打了:

  • #6 没有为你的编译器设置“phonegap 版本”
  • #7 没有为你的插件设置“版本”
  • #10 不在 config.xml 中添加新的“白名单”和“白名单插件”参数。

#6 & #7

对于 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一系列级联错误。

幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:

Cordova/PhoneGap 版本混乱
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

#10

这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1。但是,如果您的版本在 4.0.0 之前,比如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。 p>

需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划并计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。

此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。 根据您的使用情况和您使用的Phonegap 版本,CSP 需要进入您使用的每一个HTML 页面,就像您必须等待'deviceready' 一样。但是,在某些情况下根本不需要它。文档让一些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。

相关链接

Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB 现在需要白名单

【讨论】:

  • 我的 phonegap 版本是 5.3.1,我应用了您的快速修复,但它没有帮助,然后我使用 phonegap platform add ios@3.7.0,但它也没有帮助。它给了我同样的错误Plugin 'FileWriter' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml
  • @Hassan,您遇到的错误应该与编写插件无关。您实际上缺少一个插件。我建议现在删除你的插件并专注于这个问题。如果错误消失,那么这是您的插件的问题。如果错误仍然存​​在,我可以提供帮助。但正如我所说,我的笔记是应用程序的开发者,而不是插件的开发者。
  • 该错误仅在添加本教程中的自定义插件时出现link
  • 这不是答案,请@JesseMonroy650,不要在每个问题上粘贴相同的答案
  • @jcesarmobile,我同意你的观点,这个 canned 答案的使用已经被拆除。事实上,它很可能在未来几天内被搁置。 但是,在这种情况下,我已经相当清楚地说明了提供的答案不太可能有帮助。更重要的是,OP 似乎很少进行研究和阅读。我有更多关于这个主题的帖子。 FWIW:感谢您的反馈 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多