25

我将 Cordova 作为组件添加到我的 iOS 项目中。添加自定义插件会导致错误,尽管该插件在仅限 Cordova 的项目中工作:

'CDVPlugin.h' file not found

有问题的部分如下:

#import <Foundation/Foundation.h>

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

我错过了什么?

4

9 回答 9

57

对于 xcode7 添加"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"到您的标题搜索路径(您可能需要将Enable Bitcode设置为No - 对我来说是必要的,但可能与 xc7 的不同问题有关)

于 2015-10-27T13:29:33.903 回答
24

单击项目导航器中的项目图标,

选择您的项目,然后选择“构建设置”选项卡

在搜索字段中输入“标题搜索路径”

添加"$(CORDOVALIB)/Classes"并选中 Recursive 复选框 - 用于Header Search Paths

可选添加"-all_load""-Obj-C"- 用于其他链接器标志

详细说明(步骤 17)

于 2012-06-20T10:03:18.070 回答
22

将头文件更改为:

#import <Cordova/CDVPlugin.h>

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

于 2012-10-03T14:18:56.530 回答
20

我在使用 Cordova 时遇到了这个问题。来发现我的ios平台目录下的CordovaLib文件夹不见了。

我做了:

cordova platform remove ios

然后

cordova platform add ios

...这解决了这个问题。

于 2016-04-01T20:03:26.643 回答
5

我花了很多时间试图在我的项目中解决同样的问题,所以让我分享一下我的发现。它可能与那些能够在一种配置中构建项目但在另一种配置中(例如,在构建单元测试时)预编译器无法找到的人相关CDVPlugin.h

您必须确保CordovaLib子项目与主项目具有相同的配置集。

  1. 在项目导航器中选择 Xcode 中的主项目。
  2. 单击项目图标(目标上方)。
  3. 选择Info选项卡。
  4. 展开Configurations

因此,这是一组您的应用程序配置。在我的示例中,它看起来像这样: 应用配置

您需要在CordovaLib子项目中拥有相同的配置集。

  1. 选择CordovaLib子项目。
  2. 单击项目图标(目标上方)。
  3. 选择Info选项卡。
  4. 展开Configurations
  5. 确保您具有与主项目相同的配置集。如果缺少某些配置:
    1. 单击+按钮。
    2. 选择Duplicate "Release" Configuration
    3. 为配置提供正确的名称。从主项目设置中复制粘贴它。

现在执行干净的构建。

于 2015-06-26T09:31:14.610 回答
1

注意:Phonegap 2.9.1(2013 年 11 月))

我在尝试使开源“C”电话间隙插件工作时遇到了同样的问题。解决方案是将 Cordovalib.xcodeproj 添加到目标项目,完成后,单击 your_project.xcodeproj - 您需要查看目标设置,在构建阶段选项卡下,确保将 Cordovalib 添加到目标依赖项中。

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

于 2013-11-29T18:09:15.880 回答
0

在这里看看我的答案:

我在 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 行已经在我用插件下载的源代码中被注释掉了,所以我没有打扰它。

可能对你有些帮助。

于 2012-12-21T07:42:50.650 回答
0

在 xcode 8 和 8 + 中,简单地评论该行对我有用:

#import ...

如果您尝试使用 ionic 或 cordova 扩展 IOS 应用程序构建以本地拥有 watchkit 或小部件控制,这将特别有用。

于 2017-12-02T08:10:53.043 回答
-1

代替

进口

和 (

导入“类/CDVPlugin.h”

或者

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

于 2014-04-01T04:52:23.017 回答