ios .h not find 的一种解决办法

0 阅读2分钟

image.png

像这样

image.png

在这里填写的路径到 UMCommon.framework

在versions 下面是有Headers文件夹 且下面也有要找的.h文件

image.png

解决步骤

1 执行 ls -l

输出如下

total 24

-rw-rw-r--@ 1 gy  staff    6  8 16  2024 7.2.5_1c73e3607a_20201211143144

-rw-rw-r--@ 1 gy  staff   24  8 16  2024 Headers

-rw-rw-r--@ 1 gy  staff   25  8 16  2024 UMCommon

drwxrwxr-x@ 4 gy  staff  128  4 20 19:15 Versions

Headers 目前是一个普通文件(-rw-rw-r--),而不是符号链接(l)或文件夹(d)

2 删除当前的 Headers 文件:

rm Headers

3 创建正确的符号链接

ln -s Versions/A/Headers Headers

4 再次执行ls -l 输出如下

-rw-rw-r--@ 1 gy  staff    6  8 16  2024 7.2.5_1c73e3607a_20201211143144

lrwxr-xr-x  1 gy  staff   18  5 24 09:45 Headers -> Versions/A/Headers

-rw-rw-r--@ 1 gy  staff   25  8 16  2024 UMCommon

drwxrwxr-x@ 5 gy  staff  160  5 24 09:33 Versions

Trae

请将 framework 目录下的 ls -l 命令输出内容粘贴到这里,这样我可以帮你判断 Headers 的实际类型(比如符号链接、文件夹或其他类型),并进一步分析你的问题。

newPersonKing

复制

删除

total 24

-rw-rw-r--@ 1 gy  staff    6  8 16  2024 7.2.5_1c73e3607a_20201211143144

-rw-rw-r--@ 1 gy  staff   24  8 16  2024 Headers

-rw-rw-r--@ 1 gy  staff   25  8 16  2024 UMCommon

drwxrwxr-x@ 4 gy  staff  128  4 20 19:15 Versions

Trae

根据你提供的 ls -l 输出,Headers 目前是一个普通文件(-rw-rw-r--),而不是符号链接(l)或文件夹(d)。这就是你无法像正常 framework 那样访问 .h 文件的原因。

在标准 macOS framework 结构下,Headers 应该是一个符号链接,指向 Versions/Current/Headers 目录。你现在的 Headers 文件只有 24 字节,说明它被误当作普通文件创建了。

解决办法:

  1. 删除当前的 Headers 文件: rm Headers
  2. 创建正确的符号链接: ln -s Versions/Current/Headers Headers

这样 Headers 就会变成一个符号链接,Xcode 或其他工具才能正确找到头文件。

如果 framework 是自动生成的,建议检查打包脚本或构建工具,确保 Headers 被正确设置为符号链接。

newPersonKing

复制

删除

命令执行完成之后的输出 total 16

-rw-rw-r--@ 1 gy staff 6 8 16 2024 7.2.5_1c73e3607a_20201211143144

lrwxr-xr-x 1 gy staff 24 5 24 09:32 Headers -> Versions/Current/Headers

-rw-rw-r--@ 1 gy staff 25 8 16 2024 UMCommon

drwxrwxr-x@ 5 gy staff 160 5 24 09:33 Versions

Trae

现在 Headers 已经是一个符号链接(lrwxr-xr-x),指向 Versions/Current/Headers,这就是 macOS framework 下的标准结构