Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 正在创建新Swift包-未找到标题_Ios_Swift_Dependency Management_Swift Package Manager - Fatal编程技术网

Ios 正在创建新Swift包-未找到标题

Ios 正在创建新Swift包-未找到标题,ios,swift,dependency-management,swift-package-manager,Ios,Swift,Dependency Management,Swift Package Manager,我刚刚创建了一个新的Objective-C库,我正在尝试添加对Swift Package Manager的支持 图书馆本身非常基础。它具有以下源结构 ProjectName/ProjectName.h ProjectName/ProjectName.m ProjectName/Private/ProjectNameInternal.h ProjectName/Private/ProjectNameInternal.m 公共源文件导入私有头,私有源文件导入公共头。当我制作一个basicPacka

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

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

ProjectName/ProjectName.h
ProjectName/ProjectName.m
ProjectName/Private/ProjectNameInternal.h
ProjectName/Private/ProjectNameInternal.m
公共源文件导入私有头,私有源文件导入公共头。当我制作一个basic
Package.swift
并尝试构建它时,它给了我一个错误,即私有头无法看到公共头

有没有一种特殊的方式来声明所有这些Objective-C头

(如果有帮助的话。)


我认为您需要通过cSettings专门添加到标题搜索路径中。例:

.target(
...
C设置:[
.headerSearchPath(“项目名称”),
.headerSearchPath(“项目名称/专用”),
]
)

嘿,乔!哇!谢谢你!我尝试了它,它解决了大部分问题,但它没有解决出现的构建问题,因为我正在导入一个位于父目录中的文件,在子目录中。也许这更像是我糟糕的组织选择,而不是SPM的问题。我会继续玩,但这个解决方案对我来说已经足够了。非常感谢!很乐意帮忙。可能不是一个选项,但您可以将包文件保持在较高的级别,并使用target的
path
参数进行操作,就像您在该目录中一样。但很明显,这是对设置的大量假设。:)headerSearchPath基本上用于在同一个目标中公开头文件,但如果必须在目标之外公开该头文件,则它不起作用。i、 e如果您的框架被另一个框架使用,那么headerSearchPath不起作用,您必须在PublicHeaderPath中提到这一点。