“Cordov作为组件(Cleaver)中的”CDVPlugin.h文件未find“

我添加了Cordova作为我的iOS项目的一个组件。 添加一个自定义插件会导致错误,尽pipe该插件在Cordova-only项目中工作:

'CDVPlugin.h' file not found 
  • PhoneGap /cordova1.7.0安装
  • 多次检查,以正确实施步骤https://github.com/apache/incubator-cordova-ios/blob/master/guides/How%20to%20Use%20Cordova%20as%20a%20Component.md(“Adding Cleaver to你的Xcode项目(CordovaLib子项目)“)
  • 该插件工作在一个普通的基于cordova的应用程序(cordovaXcode模板)
  • 将“-all_load”添加到主项目中的“其他链接器标志”不起作用

问题部分如下:

 #import <Foundation/Foundation.h> #ifdef CORDOVA_FRAMEWORK #import <Cordova/CDVPlugin.h> #else #import "CDVPlugin.h" #endif 

我错过了什么?

对于xcode7,将"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"到您的页眉searchpath (您可能需要将Enable Bitcode设置为 – 对我来说是必要的,但可能与xc7的不同问题有关)

点击Project Navigator中的项目图标,

select您的项目,然后select“生成设置”选项卡

在search字段中input“标题searchpath”

添加"$(CORDOVALIB)/Classes"并选中Recursivecheckbox – Header Search Paths

可选为“ 其他链接器标志”值添加"-all_load""-Obj-C"

见详细说明(步骤17)

将您的头文件更改为:

#import <Cordova/CDVPlugin.h>

它在我的应用程序中工作。

我有这个问题使用cordova。 来找出我的CordovaLib文件夹下的ios平台目录消失。

我做了:

 cordova platform remove ios 

然后

 cordova platform add ios 

…这解决了这个问题。

我花了很多时间在我的项目中解决同样的问题,所以让我分享一下我的发现。 对于能够在一个configuration中构build项目的人来说,这可能是相关的,但是在另一个configuration中(例如,在编译unit testing时),预编译器无法findCDVPlugin.h

您必须确保CordovaLib子项目具有与您的主项目相同的一组configuration。

  1. 在项目导航器中selectXcode中的主项目。
  2. 点击项目图标(目标上方)。
  3. selectInfo选项卡。
  4. 展开Configurations

所以,这是一套你的应用configuration。 在我的例子中,它看起来像这样: 应用配置

您需要在CordovaLib子项目中具有相同的一组configuration。

  1. selectCordovaLib子项目。
  2. 点击项目图标(目标上方)。
  3. selectInfo选项卡。
  4. 展开Configurations
  5. 确保你有和主项目一样的configuration。 如果缺less一些configuration:
    1. 点击+button。
    2. selectDuplicate "Release" Configuration
    3. 给出正确的configuration名称。 从主项目设置中复制粘贴。

现在执行一个干净的构build。

注:Phonegap 2.9.1(2013年11月))

我试图做一个开源的“C”手机差距插件工作时遇到了同样的问题。 解决方法是将Cordovalib.xcodeproj添加到目标项目,完成后,单击your_project.xcodeproj – 您将需要查看目标设置,在“构build阶段”选项卡下,确保在目标依赖项中添加了Cordovalib。

一旦完成,它应该允许声明:#import工作。

更换

import

与(

导入“类/ CDVPlugin.h”

要么

导入“CordovaLib / Classes / CDVPlugin.h”)

看看我的答案在这里 :

在Xcode 4.5,cordova 2.1.0和JQM 1.2.0上安装ShareKit插件时,我遇到了同样的问题。 有问题的块是:

 #ifdef CORDOVA_FRAMEWORK #import <Cordova/CDVPlugin.h> #import <Cordova/CDVPluginResult.h> //#import <Cordova/JSONKit.h> #else #import "CDVPlugin.h" #import "CDVPluginResult.h" #import "JSONKit.h" #endif 

对我有用的是注释掉#ifdef行,并注释掉整个#else块。

另外,#import行已经在我用插件下载的源代码中注释掉了,所以我没有为此烦恼。

可能对你有一些帮助。

thakns user513790Fabio Antunes 。 以下答案后,我必须将总是search用户path设置为

在Xcode 8和8 +简单地评论为我工作的线:

 #import ... 

如果您试图使用ionic或cordova扩展IOS应用程序构build,以便本机监控watchkit或小部件,那么这是特别有用的。