未找到插件错误在Xcode中构建自定义插件

时间:2015-10-02 17:20:43

标签: ios cordova phonegap-plugins phonegap-build

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

  

错误:   插件' FileWriter'找不到,或者不是CDVPlugin。检查config.xml中的插件映射   2015-10-02 22:10:07.168 MyCPlug [2673:196404] - [CDVCommandQueue executePending] [Line 159] FAILED
  pluginJSON = [" FileWriter247765134"," FileWriter"," cordovaGetFileContents",[]]

我已经按照每一个细节进行了多次尝试,但我未能成功。

1 个答案:

答案 0 :(得分:0)

@Hassan,
正如我所说,Cordova / Phonegap的插件是最难完成的任务之一。部分原因是因为Cordova / Phonegap是一个移动目标。

首先,它很难看。
例如,在过去两(2)周内,Apple发布了从8.x升级到iOS 9.0.1的移动设备升级版。毋庸置疑,很多开发商都没有做好准备。几天后, Phonegap Build 在周末进行了 3.7.0 cli-5.2.0 的*未宣布*升级。对于志愿者支持小组,我们完全没有意识到。直到20多个小时过去,一位开发人员才发现它,主要来自所看到的模式。 (2天后Adobe / 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

QUICK FIX 将此添加到您的config.xml
<preference name="phonegap-version" value="3.7.0" />

否则来自Top Mistakes by Developers new to Cordova/Phonegap您已点击:

  • #6 未为您的编译器设置“phonegap版本”
  • #7 没有为您的插件设置“版本”
  • #10 未在config.xml中添加新的“white-list”和“white-list plugin”参数。

对于#6&amp; #7

  

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

     

幸运的是,对于我们所有人来说,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,则必须添加 white-list 要求。

     

要明确的是,“白名单”已经存在了一段时间,但插件和要求非常新。正如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换句话说,事实上的开放访问功能已经计划并计划被淘汰。此更改标志着删除开放访问功能的一个步骤。

     

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

相关链接

  

Phonegap Build Forum:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单