@import X;导致错误无法构建模块 X
Posted
技术标签:
【中文标题】@import X;导致错误无法构建模块 X【英文标题】:@import X; Causes error Could not build module X 【发布时间】:2016-03-10 16:04:12 【问题描述】:我有一个定义为模块的自定义框架 TSUI。它同时具有 Objective-C 和 Swift 代码。如果我将它导入到 Objective-C 代码中,如下所示:
#import <TSUI/TSUI.h>
一切正常,但我只能访问 Objective-C 代码。但是,如果我将其导入为:
@import TSUI;
或
#import <TSUI/TSUI.h>
#import <TSUI/TSUI-Swift.h>
一切编译正常,但在 Xcode 中我收到以下错误:
在框架和应用代码中,我设置了以下构建设置:
嵌入的内容包含 Swift 代码 = YES 允许框架模块中的非模块化包含 = YES 启用模块 = 是我已尝试清理项目,清理派生数据,但问题不断出现。如果框架不包含 Swift 代码但包含在 @import 而不是 #import 中,它也会出现。目前我认为这是一个错误。
【问题讨论】:
您是否尝试过在导入之前构建项目? 你能创建和上传一个有这个问题的小示例项目吗? 【参考方案1】:删除您当前的导入语句 所以项目编译。
构建您的项目。
再次尝试导入。
【讨论】:
【参考方案2】:您的模块有问题。我相信在您的 TSUI 项目中,您需要设置一个模块映射文件。您应该有一个文件,它只导入您想包含在模块中的所有文件。您可以将其命名为 TSUI-umbrella.h。在您的模块映射中,您应该将其设置为您的伞形标题。然后,当您运行 @import(导入模块)时,您将获得正确的编译。另外你可以做
#import <TSUI/TSUI-umbrella.h>
基本上
#import <ModuleName/UmbrellaHeader>
【讨论】:
以上是关于@import X;导致错误无法构建模块 X的主要内容,如果未能解决你的问题,请参考以下文章
pod spec lint 错误:无法构建模块“Protobuf”,找不到文件:#import "google/protobuf/Any.pbobjc.h"