为什么使用 `use_frameworks!` 模式找不到文件?
Why can't find file when use `use_frameworks!` pattern?
我有一个名为 'A' 的 pod 库,由 swift
编写。该库有一个名为 'B' 的 'subspec'。 'B' 依赖于另一个名为 BSDK
的库,它由 OC
编写。 BSDK
包括一个 B.framework
和一个 B_Bridging_Header
文件。 B.framework
的 headers 包含三个 .h
文件。在 B_Bridging_Header
中导入的那三个 .h
文件。当我通过模式 use_modular_headers!
使用 'A' 时,它就可以了。但是当使用模式use_frameworks!
时,B_Bridging_Header
会出现找不到这三个.h
文件的错误:
Include of non-modular header inside framework module 'A.B_Bridging_Header': '/Users/*/Desktop/*/Pods/BSDK/BSDK/frame/B.framework/Headers/*.h'
我该如何解决?
我通过将 Modules
文件夹添加到 B.framework
中解决了这个问题。此文件夹包含一个名为 module.modulemap
的文件。此文件写如下:
framework module B {
header "One.h"
header "Two.h"
header "Three.h"
export *
}
所以我可以按模块导入这个框架。
我有一个名为 'A' 的 pod 库,由 swift
编写。该库有一个名为 'B' 的 'subspec'。 'B' 依赖于另一个名为 BSDK
的库,它由 OC
编写。 BSDK
包括一个 B.framework
和一个 B_Bridging_Header
文件。 B.framework
的 headers 包含三个 .h
文件。在 B_Bridging_Header
中导入的那三个 .h
文件。当我通过模式 use_modular_headers!
使用 'A' 时,它就可以了。但是当使用模式use_frameworks!
时,B_Bridging_Header
会出现找不到这三个.h
文件的错误:
Include of non-modular header inside framework module 'A.B_Bridging_Header': '/Users/*/Desktop/*/Pods/BSDK/BSDK/frame/B.framework/Headers/*.h'
我该如何解决?
我通过将 Modules
文件夹添加到 B.framework
中解决了这个问题。此文件夹包含一个名为 module.modulemap
的文件。此文件写如下:
framework module B {
header "One.h"
header "Two.h"
header "Three.h"
export *
}
所以我可以按模块导入这个框架。