我正在使用Swift Package Manager。我有一个项目,我可以通过“快速构建”成功构建。我通过“swift package generate-xcodeproj”创建了一个Xcode项目。当我在Xcode中打开项目时,它成功构建。
Xcode项目包括两个模块A和B.
模块A具有以下地图:
module ModuleA {
umbrella header "/Users/Robert/Temp/MyProject/Sources/ModuleA/include/ModuleA.h"
link "ModuleA"
export *
}
模块B依赖于A并具有以下导入:
import ModuleA
到目前为止一切顺利;一切都成功建立。现在我想更改模块映射,以便它使用相对路径,例如:
module ModuleA {
umbrella header "ModuleA.h"
link "ModuleA"
export *
}
然而,当我这样做时,我无法构建模块B:错误 - 找不到伞标题'ModuleA.h'。我已经尝试了在构建设置中我能想到的所有内容 - >搜索路径 - >标题搜索路径和用户标题搜索路径。我在网上,这里和其他地方都发现过类似的问题,并尝试过我读过的内容,但到目前为止还没有去过。
这已达到拔毛阶段。任何建议将不胜感激!
答案 0 :(得分:2)
我的猜测是你正在修改生成的模块图。在/Users/Robert/Temp/MyProject/Sources/ModuleA/include/module.modulemap
创建一个包含以下内容的模块映射文件:
module ModuleA {
umbrella header "ModuleA.h"
link "ModuleA"
export *
}
运行$ swift package clean
以删除.build
目录和$ swift build
中旧的生成的模块映射,以确认自定义模块映射是否有效。
然后删除生成的Xcode项目并重新生成它。