6

我正在尝试构建我的第一个 Cordova 应用程序,但我无法让插件工作。

我的应用程序是使用 Cordova 命令行界面构建的,因此我以这种方式添加了 Camera 插件:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

我的 config.xml 看起来像这样:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.dev.myapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>My App</name>
    <description>
        A sample Apache Cordova application
    </description>
    <author email="dev@callback.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
    <feature name="Camera">
        <param name="ios-package" value="CDVCamera" />
    </feature>
</widget>

我已经跑了cordova build,一切都很好,但是当我在 Xcode 中构建项目时,它首先告诉我CDVCamera.h, CDVCamera.m files丢失了。当我首先运行时,命令行界面不应该正确放置这些文件cordova plugin add吗?

此外,即使我在项目中手动复制文件,项目也会运行,但是当我调用 Camera 函数时,它会引发以下错误:

ERROR: Plugin 'Camera' not found, or is not a CDVPlugin

我知道我对此很陌生,但我不知道我做错了什么?

4

6 回答 6

16

如果在所有文件都到位后仍然出现此错误,请确保相关源.m文件实际上是项目的目标成员。

为此,请Plugin.m在 Xcode 中选择该文件,并确保在Target Membership下的右侧检查器窗格中选中您项目的复选框。

几次删除并添加插件后,我遇到了这个问题。

提示:当您的插件不是项目成员时(如在 Xcode 5.0 中观察到的),相应Plugin.h文件缺少在类中声明的类型的语法颜色突出显示。CDVPlugin

于 2013-10-31T18:53:19.640 回答
8

如果你的 Xcode 项目没有太多的束缚(我没有),解决这个问题的最简单方法是:

cordova platform remove ios

进而...

cordova platform add ios

无论是什么弄混了,都可以通过这样做来解决。您无需重新安装插件,它们会在您重新添加平台时安装。

于 2015-01-21T19:16:20.920 回答
1

好的,看来您必须在创建构建之前添加所有想要的插件。然后所有资源文件都正确定位。

于 2013-10-08T08:57:12.033 回答
1

我对phonegap 3.6有同样的问题。通过更新phonegap,问题就解决了。

npm update -g cordova

显然,必须有更新phonegap的愿望:)

于 2015-04-13T09:02:13.570 回答
1

我只想说,即使您认为这不是您的问题,我也会尝试 Chris Rae 的重置平台的解决方案!

cordova platform rm ios
cordova platform add ios

感谢 Chris Rae 的解决方案!它对我很有用。在将 WKWebview 添加到我的应用程序时,我收集了它和其他问题的解决方案,并将它们放在博客文章中。

http://blog.tylerbuchea.com/using-wkwebview-in-ios9-to-boost-ionic-cordova-performance/

我想我采取了另一种关于构建设置的解决方案。所以,不要生气/谢谢一堆!

于 2015-11-12T02:44:30.193 回答
0

重新安装插件时我也遇到了这个问题,但设法解决了。如果像我一样,删除平台不是一个选项,因为你会丢失太多的工作,这里有一个解决方案:

第 1 步:将 CDVCamera.m 添加到您的编译源(在构建阶段)

第 2 步:如果您的问题与我的相同,您将收到 Apple Match-o-Linker 错误:将框架 OpenAL 和 ImageIO 添加到您的项目中。

第 3 步:重建并欢欣鼓舞 :)

于 2015-02-18T14:20:47.840 回答