Ios 正在创建新Swift包-未找到标题
我刚刚创建了一个新的Objective-C库,我正在尝试添加对Swift Package Manager的支持 图书馆本身非常基础。它具有以下源结构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
ProjectName/ProjectName.h
ProjectName/ProjectName.m
ProjectName/Private/ProjectNameInternal.h
ProjectName/Private/ProjectNameInternal.m
公共源文件导入私有头,私有源文件导入公共头。当我制作一个basicPackage.swift
并尝试构建它时,它给了我一个错误,即私有头无法看到公共头
有没有一种特殊的方式来声明所有这些Objective-C头
(如果有帮助的话。)
我认为您需要通过cSettings专门添加到标题搜索路径中。例:
.target(
...
C设置:[
.headerSearchPath(“项目名称”),
.headerSearchPath(“项目名称/专用”),
]
)
嘿,乔!哇!谢谢你!我尝试了它,它解决了大部分问题,但它没有解决出现的构建问题,因为我正在导入一个位于父目录中的文件,在子目录中。也许这更像是我糟糕的组织选择,而不是SPM的问题。我会继续玩,但这个解决方案对我来说已经足够了。非常感谢!很乐意帮忙。可能不是一个选项,但您可以将包文件保持在较高的级别,并使用target的path
参数进行操作,就像您在该目录中一样。但很明显,这是对设置的大量假设。:)headerSearchPath基本上用于在同一个目标中公开头文件,但如果必须在目标之外公开该头文件,则它不起作用。i、 e如果您的框架被另一个框架使用,那么headerSearchPath不起作用,您必须在PublicHeaderPath中提到这一点。