Подтвердить что ты не робот

"CDVPlugin.h" файл не найден "в Кордове как компонент (Cleaver)

Я добавил Кордову в качестве компонента моего проекта iOS. Добавление пользовательского плагина приводит к ошибке, несмотря на то, что плагин работает в проекте только Кордова:

'CDVPlugin.h' file not found
  • Установлен PhoneGap/Cordova 1.7.0
  • Проверено несколько раз, чтобы правильно выполнить шаги https://github.com/apache/incubator-cordova-ios/blob/master/guides/How%20to%20Use%20Cordova%20as%20a%20Component.md ( "Добавление кливера в проект Xcode (подпроект CordovaLib)" )
  • Плагин работает в простом кордовом приложении (шаблон Кордовы Xcode)
  • Добавление "-all_load" к "другим флагам компоновщика" в основном проекте не имеет эффекта

Проблемная часть выглядит следующим образом:

#import <Foundation/Foundation.h>

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

Что мне не хватает?

4b9b3361

Ответ 1

Для xcode7 добавьте "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" в маршруты поиска заголовков (и вам может потребоваться установить Включить биткод на Нет) для меня, но может быть связано с другой проблемой с xc7)

Ответ 2

Нажмите значок проекта в Навигаторе проектов,

выберите свой проект, затем выберите вкладку "Настройки сборки"

Введите "Пути поиска заголовков" в поле поиска

Добавьте "$(CORDOVALIB)/Classes" и установите флажок "Рекурсивный" - для Пути поиска заголовков значение

необязательно Добавьте "-all_load" и "-Obj-C" - для Другие флаги компоновщика

см. подробное описание (шаг 17)

Ответ 3

Измените файл заголовка на:

#import <Cordova/CDVPlugin.h>

он работает в моем приложении.

Ответ 4

У меня была эта проблема с использованием Кордовы. Приходите, чтобы узнать, что папка CordovaLib в каталоге платформы ios исчезла.

Я сделал:

cordova platform remove ios

затем

cordova platform add ios

... и это исправило проблему.

Ответ 5

Я потратил много времени на то, чтобы исправить ту же проблему в моем проекте, поэтому позвольте мне поделиться своими выводами. Это может иметь значение для тех, кто может построить проект в одной конфигурации, но в другой конфигурации (например, при тестировании блоков здания) прекомпилятор не находит CDVPlugin.h.

Вы должны убедиться, что подпроект CordovaLib имеет тот же набор конфигураций, что и ваш основной проект.

  • Выберите основной проект в Xcode в навигаторе проекта.
  • Нажмите значок проекта (над целевыми).
  • Выберите вкладку Info.
  • Развернуть Configurations.

Итак, это набор ваших конфигураций приложений. В моем примере это выглядело так: App configurations

Вам нужно иметь тот же набор конфигураций в подпроекте CordovaLib.

  • Выберите подпроект CordovaLib.
  • Нажмите значок проекта (над целевыми).
  • Выберите вкладку Info.
  • Развернуть Configurations.
  • Убедитесь, что у вас есть тот же набор конфигураций, что и в главном проекте. Если некоторые конфигурации отсутствуют:
    • Нажмите кнопку +.
    • Выберите Duplicate "Release" Configuration
    • Дайте правильное имя для конфигурации. Скопируйте его в главные настройки проекта.

Теперь выполните чистую сборку.

Ответ 6

Примечание: Phonegap 2.9.1 (ноябрь 2013 г.))

Я столкнулся с такой же проблемой, пытаясь сделать плагин с плагином для телефона с открытым исходным кодом. Решение заключалось в том, чтобы добавить Cordovalib.xcodeproj к целевому проекту, после его завершения нажмите на свой_project.xcodeproj - вам нужно будет посмотреть в целевых настройках на вкладке "Сборка фаз", убедитесь, что Cordovalib добавлен в "Зависимости целей".

Сделав это, вы должны разрешить утверждение:    #Импортировать работать.

Ответ 7

Посмотрите на мой ответ здесь:

У меня была такая же проблема при установке плагина ShareKit на Xcode 4.5, cordova 2.1.0 и JQM 1.2.0. Проблемный блок:

#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

заменить

import

с (

import "Классы/CDVPlugin.h"

ИЛИ

импорт "CordovaLib/Classes/CDVPlugin.h" )

Ответ 9

thakns user513790 и Fabio Antunes. После следующего ответа мне пришлось установить Всегда искать пользовательские пути на Да

Ответ 10

В xcode 8 и 8 + просто комментируя, что линия работала для меня:

#import ...

Это особенно полезно, если вы пытаетесь расширить сборку приложений IOS с помощью ионной или кордовой клавиатуры, чтобы иметь контроль над сторожем или виджетами.