创建新的 Swift 包 - 未找到标头

TiM*_*TiM 7 dependency-management ios swift swift-package-manager

我刚刚创建了一个新的 Objective-C 库,并且正在尝试添加对 Swift Package Manager 的支持。

图书馆本身非常基础。它具有以下源结构。

ProjectName/ProjectName.h
ProjectName/ProjectName.m
ProjectName/Private/ProjectNameInternal.h
ProjectName/Private/ProjectNameInternal.m
Run Code Online (Sandbox Code Playgroud)

公共源文件导入私有标头,私有源文件导入公共标头。当我做了一个基本的Package.swift并尝试构建它时,它给了我一个错误:私有标头无法看到公共标头。

有没有一种特殊的方式我应该声明所有这些 Objective-C 标头?

(如果有帮助的话,这是有问题的图书馆。)

构建错误

Joe*_*ick 8

我认为您需要通过 cSettings 特别添加到您的标头搜索路径。前任:

.target(
    ...
    cSettings: [
    .headerSearchPath("ProjectName"),
    .headerSearchPath("ProjectName/Private"),
    ]
)
Run Code Online (Sandbox Code Playgroud)

  • headerSearchPath 基本上用于在同一目标中公开头文件,但如果必须在目标之外公开该头文件,则它不起作用。即,如果您的框架被另一个框架使用,在这种情况下 headerSearchPath 不起作用,您必须在 publicHeadersPath 中提到这一点。 (4认同)