xcode 静态库 public/private/project 头文件

xcode static library public/private/project header files

所以,我有一个 iOS 应用程序项目,其中有一个静态库作为子项目。正如在 SO 上多次发现的那样,您应该将库头文件的可见性设置为 public/private/project,具体取决于谁应该能够使用它们。

基于此,我创建了一个 class,其中包含一个向应用程序项目(或将要使用此库的任何人)公开功能的头文件。当然,这个头文件从库项目中的其他 classes 导入了许多头文件。由于这些其他头文件不提供应向库用户公开的功能,我想将它们设置为 "project",使它们对世界其他地方不可见。

但是,当我将头文件设置为 "project" 时,它们不会被复制到任何私有或 public 头文件夹中。在编译使用该库的应用程序项目时,在 PublicLibraryClassHeader.h 中使用 #import "ProjectHeader.h" 时会导致 'ProjectHeader.h' file not found 错误。

所以问题是:如何在库项目中将头文件设置为 "project" 并仍然在该库项目中使用它们?我是不是误解了静态库中 public/private/project 头文件的概念?

最简单的方法是将静态库转换为框架。 Framework 是特定容器中的静态库,可以为您完成所有工作。顺便说一句,关于 public headers 的这句话与框架有关,与静态库无关。