Ios Xcode";缺少子模块“;警告
我正在使用Xcode6 GM创建一个Coacoa Touch框架(Xcode6中的一个新功能),然后这个框架就包含在我的应用程序中 一切正常(工作正常),除了在“导入”中收到警告。根本原因是什么Ios Xcode";缺少子模块“;警告,ios,objective-c,swift,xcode,xcode6,Ios,Objective C,Swift,Xcode,Xcode6,我正在使用Xcode6 GM创建一个Coacoa Touch框架(Xcode6中的一个新功能),然后这个框架就包含在我的应用程序中 一切正常(工作正常),除了在“导入”中收到警告。根本原因是什么 也许,您可以通过在“DirectProximityFramework.h”中添加以下行来停止此警告 #导入 …等等 我建议查查 [针对您的框架]->构建阶段->标题->公共我遇到了同样的问题,并最终通过将我的项目标题添加到伞形标题中解决了它。当您创建一个新的框架时,它应该从一个由项目命名的.h文件开始
也许,您可以通过在“DirectProximityFramework.h”中添加以下行来停止此警告
#导入
…等等
我建议查查
[针对您的框架]->构建阶段->标题->公共我遇到了同样的问题,并最终通过将我的项目标题添加到伞形标题中解决了它。当您创建一个新的框架时,它应该从一个由项目命名的
.h
文件开始(在您的例子中是DirectProximityFramework.h
)
此文件中有一条注释:
在此标题中,您应该导入
使用诸如#import
因此,只需将您的GeofencingHelper.h
文件添加到此文件中:
#import <DirectProximityFramework/GeofencingHelper.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[];
#导入
#进口
//! GameworkSDK的项目版本号。
基金会(出口双游戏)dkversionnumber ;;
//! GameworkSDK的项目版本字符串。
基金会_导出常量未签名字符GameworkSDKVersionString[];
我遇到了这个问题,上面所有的解决方案都不适合我,因为文件不应该在伞形标题中
因此,如果这是您自己的框架,并且该特定文件不应位于伞形标题中,请确保它未在目标成员资格部分标记为public
这为我解决了这个问题。我的可可豆有这个问题 我的解决方案非常简单,但我花了很长时间才弄明白
- 当我运行$pod install时,它在与.xcodeproj文件相同的目录中为我生成了一个工作区李>
- 但是,我已经创建了一个工作区用作其父目录李>
- 于是,我简单地删除了我的旧工作区,并使用了pods创建的工作区
glhf 我也有同样的问题,我的解决方案是 当您创建框架项目时,您的项目会自动在这个头文件导入类中创建“yourProjectName.h”文件 在我的情况下,我得到
缺少子模块'MSFramework.MSLocationManager'[-Wincomplete-umbrane]
此警告
只需导入即可解决此问题
#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[];
#导入
#导入“MSLocationManager.h”
//! MSFramework的项目版本号。
基金会\导出双MSFrameworkVersionNumber;
//! MSFramework的项目版本字符串。
FOUNDATION_导出常量无符号字符MSFrameworkVersionString[];
在这里,我只需在头文件中添加
#import“MSLocationManager.h”
。在项目设置中设置头搜索路径:
#import <DirectProximityFramework.h>
目标/构建设置/标题搜索路径
“$PODS\u配置\u构建\u目录/[您的项目名称]/[您的项目名称]。框架/标题”
现在导入头文件
#import <DirectProximityFramework.h>
#导入
如果它不是您的框架,并且没有什么可做的,您可以通过这种方式禁用警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincomplete-umbrella"
#import <DirectProximityFramework/GeofencingHelper.h>
#pragma clang diagnostic pop
#pragma-clang诊断推送
#pragma-clang诊断被忽略“-Wincomplete伞”
#进口
#pragma-clang诊断流行语
注意-这不是修复,只是隐藏了问题。Hi@Firo-即使我这么做了,我还是收到了这个警告。编辑:我这方面的愚蠢。我没有适当地更新我导入的框架。@Julian,很高兴你弄明白了!如果警告发生在测试目标中,并且我不想公开测试所需的所有标头,该怎么办?要添加的一件事是确保在框架目标的构建阶段将标头正确地添加到标头部分的public、Private或Project部分。