“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。
- 在项目导航器中selectXcode中的主项目。
- 点击项目图标(目标上方)。
- select
Info
选项卡。 - 展开
Configurations
。
所以,这是一套你的应用configuration。 在我的例子中,它看起来像这样:
您需要在CordovaLib
子项目中具有相同的一组configuration。
- select
CordovaLib
子项目。 - 点击项目图标(目标上方)。
- select
Info
选项卡。 - 展开
Configurations
。 - 确保你有和主项目一样的configuration。 如果缺less一些configuration:
- 点击
+
button。 - select
Duplicate "Release" Configuration
- 给出正确的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 user513790和Fabio Antunes 。 以下答案后,我必须将总是search用户path设置为是
在Xcode 8和8 +简单地评论为我工作的线:
#import ...
如果您试图使用ionic或cordova扩展IOS应用程序构build,以便本机监控watchkit或小部件,那么这是特别有用的。