包含非模块化标头和使用AWS SDK在Swift中找不到sqlite3.h的文件

时间:2015-06-27 01:41:24

标签: ios swift amazon-web-services sqlite cocoapods

我在iOS Swift项目中遇到了两个非常特殊的错误。当我尝试编译我的项目时,我收到一个"包含非模块化标题"由于AWS iOS SDK的AWSCore框架中的多个文件需要" sqlite3.h"作为一种进口。

在花了几个小时寻找解决方案后,我最终将该文件的副本从Cocoapods复制到我项目的AWSCore文件夹中,这样就消除了问题,成功编译了我的项目。但是,当我清理构建并尝试重建时,我收到一个"词法或预处理器问题 - 找不到文件"由于额外的SQLite3.h文件。

当我删除它时,编译过程将进入"包含非模块化标题"再次出错。

我已经尝试了几乎所有常见的解决方案 - 将模块化头文件包括在内,删除框架和读取,添加"。"递归地到头/框架搜索路径。我现在完全难过了,所以任何帮助都会非常感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您能提供有关此问题的更多详细信息吗? “AWS iOS SDK的AWSCore框架中的几个文件需要”sqlite3.h“作为导入。”你能提供一个导致错误的文件列表吗?我可以知道您使用的是什么版本的AWS Mobile SDK?您是使用Cocoapods安装的还是从亚马逊网站下载的?

您是否尝试过更改构建设置CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES或“允许非模块包含在框架模块中”为“是”?只需在框架构建设置中搜索“模块”即可找到它。在更改此设置之前,您可能需要先清理构建。