ikzjfr0
ikzjfr0

Reputation: 767

Xcode "Missing Submodule" warning

I'm using Xcode6 GM to create a Coacoa Touch Framework (a new function in Xcode6), then this framework is included into my app.

Everything is fine (works fine), except that I get warnings in "#import". What is the root cause?

enter image description here

Upvotes: 42

Views: 34463

Answers (7)

Viktor Goltvyanitsa
Viktor Goltvyanitsa

Reputation: 177

In case if it is not your framework and there is nothing to do you can disable warning in such way

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

Note - it is not a fix, it just hide the problem.

Upvotes: 3

Mansur
Mansur

Reputation: 187

I had same issue and my solution was..

When you create the framework project.Your project automatically "yourProjectName.h" file gets created, In this header file import class class.

In my case I am getting missing submodule 'MSFramework.MSLocationManager' [-Wincomplete-umbrella]this warning.

resolved by Just importing

   #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[];

here I just add the # import "MSLocationManager.h"in header file.

Upvotes: 1

greenhouse
greenhouse

Reputation: 1281

i had this problem cocoa pods

my solution was real simple but took forever for me to figure out.

  • when i ran $ pod install it generated a workspace for me in the same dir as my .xcodeproj file.
  • however i had already created a workspace to use as its parent directory.
  • so then i simply deleted my old workspace and went with the one that pods created

enter image description here


glhf!

Upvotes: 0

Barak Yoresh
Barak Yoresh

Reputation: 299

I ran into this issue and all the solutions above didn't fit me, since the file wasn't supposed to be in the umbrella header.

So if this is your own framework and that particular file shouldn't be in the umbrella header, make sure it isn't marked public in the target membership section.

That fixed it for me.

Upvotes: 2

Firo
Firo

Reputation: 15566

I ran into the same problem and eventually fixed it by adding my project headers into the umbrella header. When you create a new framework it should start with a single .h file titled by the project (in your case DirectProximityFramework.h).

Inside this file is a comment:

In this header, you should import all the public headers of your framework using statements like #import <DirectProximityFramework/PublicHeader.h>

So just add your GeofencingHelper.h file in this file:

#import <DirectProximityFramework/GeofencingHelper.h>

This should remove all of your warnings!

Upvotes: 57

Zeus
Zeus

Reputation: 128

// In this header, you should import all the public headers of your framework using statements like

#import <GameworkSDK/GWObject.h>

like this:

#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[];

Upvotes: 0

ushio
ushio

Reputation: 126

Maybe, you can stop this warning by adding following line to "DirectProximityFramework.h"

#import <DirectProximityFramework/GeofencingHelper.h>

...etc

I suggest to check

[Target your framework] -> Build Phases -> Headers -> Public

Upvotes: 7

Related Questions