Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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 如何教Xcode在静态库项目的输出中包含所有头文件?_Ios_Xcode_Static Libraries - Fatal编程技术网

Ios 如何教Xcode在静态库项目的输出中包含所有头文件?

Ios 如何教Xcode在静态库项目的输出中包含所有头文件?,ios,xcode,static-libraries,Ios,Xcode,Static Libraries,我按照一个步骤创建了一个静态库项目。然后我拖入我的类并将它们添加到目标中 当我构建并运行时,它会创建一个libUtils.a文件。在Finder中显示时,include文件夹仅包含Xcode在创建项目时自动创建的第一个类的头文件。缺少所有其他头文件 我仔细检查:所有添加的类文件都是项目的一部分,并且检查器显示目标项目的目标成员资格复选标记 这是Xcode中的一个bug,还是我必须在其他地方注册我另外创建的所有文件?Xcode会自动添加一个构建阶段,以将标题复制到产品目录中。您可以将新头文件添加到

我按照一个步骤创建了一个静态库项目。然后我拖入我的类并将它们添加到目标中

当我构建并运行时,它会创建一个libUtils.a文件。在Finder中显示时,include文件夹仅包含Xcode在创建项目时自动创建的第一个类的头文件。缺少所有其他头文件

我仔细检查:所有添加的类文件都是项目的一部分,并且检查器显示目标项目的目标成员资格复选标记


这是Xcode中的一个bug,还是我必须在其他地方注册我另外创建的所有文件?

Xcode会自动添加一个构建阶段,以将标题复制到产品目录中。您可以将新头文件添加到此生成阶段:

更新

您也可以使用“复制标头”生成阶段:

编辑器菜单>添加生成阶段>添加复制头生成阶段

将头文件添加到项目中时,头文件将自动添加到其中一个类别中:


有关此生成阶段和中的三个类别的详细信息。

添加头文件

Xcode 10.2.1

Project editor -> select a target -> Build Phases -> + Add a new Build Phase -> New Header Phase

第二步是添加
.h
文件

//构建阶段
项目编辑器->选择目标->构建阶段->标题->将文件添加到**公共**区域
//或
//目标成员
选择“.h”文件->选择文件检查器选项卡->目标成员资格->选择目标并将其公开****

有没有办法让Xcode自动复制它们?Xcode不这样做的原因是什么?或者是因为如果你创建了一个库,你选择了什么头文件是公共的?实际上,复制文件阶段并不是库正常工作所必需的(例如,与编译源代码阶段相反),所以Xcode只是通过给出一个如何使用构建阶段复制公共头文件的示例来帮助你。啊,但是,如果我没有在复制文件阶段注册所有公共头文件,那么它们就不会将exportet发送到include目录。所以,还有其他方法可以让他们在我构建时使用exportet来包含目录?“复制头”--苹果官方告诉你不要这样做,因为他们在一年前破坏了Xcode的这一部分,因此无法修复它。如果你想使用它,你必须使用变通方法(苹果拒绝提供文档),将所有内容“公开”,然后创建自己的运行脚本以将它们移动到适当的位置。不要使用此解决方案,因为在我的一个静态库中使用此方法,我在企业发行版上花了一天时间。谢谢Alex!其他帖子不是最新的,对于旧的xcode版本有很多答案。。。花了一段时间才找到你的。。。