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

Предупреждение Xcode "Отсутствующий субмодуль"

Я использую Xcode6 GM для создания Coacoa Touch Framework (новая функция в Xcode6), затем эта структура включена в мое приложение.

Все в порядке (отлично работает), за исключением того, что я получаю предупреждения в "#import". В чем причина?

enter image description here

4b9b3361

Ответ 1

Я столкнулся с той же проблемой и в конечном итоге исправил ее, добавив заголовки проектов в заголовок зонтика. Когда вы создаете новую структуру, она должна начинаться с одного файла .h, озаглавленного проектом (в вашем случае DirectProximityFramework.h).

Внутри этого файла есть комментарий:

В этом заголовке вы должны импортировать все публичные заголовки своих используя выражения типа #import <DirectProximityFramework/PublicHeader.h>

Поэтому просто добавьте файл GeofencingHelper.h в этот файл:

#import <DirectProximityFramework/GeofencingHelper.h>

Это должно удалить все ваши предупреждения!

Ответ 2

Возможно, вы можете остановить это предупреждение, добавив следующую строку в "DirectProximityFramework.h"

#import <DirectProximityFramework/GeofencingHelper.h>

... и т.д.

Я предлагаю проверить

[Target your framework] → Фазы сборки → Заголовки → Общие

Ответ 3

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

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

Это исправило это для меня.

Ответ 4

//В этом заголовке вы должны импортировать все публичные заголовки своей структуры с помощью таких утверждений, как

#import <GameworkSDK/GWObject.h>

вот так:

#import <UIKit/UIKit.h>

#import <GameworkSDK/GWObject.h>

//! Project version number for GameworkSDK.
FOUNDATION_EXPORT double GameworkSDKVersionNumber;

//! Project version string for GameworkSDK.
FOUNDATION_EXPORT const unsigned char GameworkSDKVersionString[];

Ответ 5

У меня была эта проблема cocoa pods

мое решение было действительно простым, но навсегда потребовалось выяснить.

  • Когда я запустил $pod install, он создал рабочую область для меня в том же каталоге, что и файл .xcodeproj.
  • однако я уже создал рабочую область для использования в качестве ее родительского каталога.
  • так что я просто удалил свое старое рабочее пространство и пошел с тем, который создавал pods

введите описание изображения здесь


glhf!

Ответ 6

У меня была такая же проблема, и мое решение было...

При создании проекта framework. Ваш проект автоматически создается файл yourProjectName.h. В этом заголовочном файле импортируется класс класса.

В моем случае я получаю missing submodule 'MSFramework.MSLocationManager' [-Wincomplete-umbrella] это предупреждение.

разрешено просто импортировать

   #import <UIKit/UIKit.h>
    # import "MSLocationManager.h"

    //! Project version number for MSFramework.
    FOUNDATION_EXPORT double MSFrameworkVersionNumber;

    //! Project version string for MSFramework.
    FOUNDATION_EXPORT const unsigned char MSFrameworkVersionString[];

здесь я просто добавляю # import "MSLocationManager.h" в заголовочный файл.

Ответ 7

Задайте путь поиска заголовка в настройках проекта:

ЦЕЛИ/Настройки сборки/пути поиска заголовков       "$ PODS_CONFIGURATION_BUILD_DIR/[YOUR PROJ NAME]/[YOUR PROJ NAME].framework/Headers"

Теперь импортируйте файл заголовка.

    #import <DirectProximityFramework.h>

Ответ 8

Если это не ваша структура и вам нечего делать, вы можете отключить предупреждение таким образом.

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincomplete-umbrella"
#import <DirectProximityFramework/GeofencingHelper.h>
#pragma clang diagnostic pop

Обратите внимание - это не исправление, оно просто скрывает проблему.