【问题标题】:"'CDVPlugin.h' file not found" in Cordova as component (Cleaver)Cordova 中的“'CDVPlugin.h' 文件未找到”作为组件(Cleaver)
【发布时间】:2012-05-29 16:27:48
【问题描述】:

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

'CDVPlugin.h' file not found

有问题的部分如下:

#import <Foundation/Foundation.h>

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

我错过了什么?

【问题讨论】:

    标签: ios cordova phonegap-plugins


    【解决方案1】:

    对于 xcode7,将 "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" 添加到您的 Header Search Paths(您可能需要将 Enable Bitcode 设置为 No - 对于我,但可能与 xc7 的不同问题有关)

    【讨论】:

    • 准时!这是正确的答案。谢谢好心的先生!
    • 只需将“$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include”添加到我的标题搜索路径即可解决我的问题。启用位码保持为 YES。需要注意的是,在将 Xcode 从以前的版本 7 更新到版本 7.1 (7B91b) 后会出现此问题
    • 正如@Lisarien 所说,不需要启用BitCode。只需添加正确的路径即可完成工作!它对我有用!
    • 你让我开心,先生!谢谢!
    • 对我不起作用,我的位代码 NO 和字符串 "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" 也不起作用
    【解决方案2】:

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

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

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

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

    可选 添加"-all_load""-Obj-C" - 用于Other Linker Flags

    detailed description (step 17)

    【解决方案3】:

    把你的头文件改成:

    #import &lt;Cordova/CDVPlugin.h&gt;

    它在我的应用程序中运行。

    【讨论】:

    • 这是 Xcode 7.1 的正确解决方案 - 其余的都没有为我解决。
    【解决方案4】:

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

    我做到了:

    cordova platform remove ios
    

    然后

    cordova platform add ios
    

    ...这解决了问题。

    【讨论】:

    • 是的,是的。这是解决生活中所有问题的方法。
    • 几个月后,我再次面临这个问题,我没有意识到我已经发布了解决方案。我自己的修复并没有为我做这件事:(
    【解决方案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. 为配置提供正确的名称。从主项目设置中复制粘贴。

    现在执行干净的构建。

    【讨论】:

      【解决方案6】:

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

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

      一旦完成,它应该允许以下语句: #进口 上班。

      【讨论】:

        【解决方案7】:

        看看我的回答here

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

        可能对你有所帮助。

        【讨论】:

          【解决方案8】:

          在 xcode 8 和 8 + 中,只需注释行对我有用:

          #import ...
          

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

          【讨论】:

            【解决方案9】:

            替换

            进口

            与 (

            导入“类/CDVPlugin.h”

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-10-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多