如何将库附加到 ios 项目?

How to attach library to ios project?

我正在开发一个使用 AppList 库的命令行工具应用程序。但是当我尝试在我的设备上 运行 时,发生了错误:

dyld: Library not loaded: /usr/lib/libapplist.dylib
  Referenced from: /usr/bin/testApp
  Reason: image not found

是否可以将libapplist.dylib附加到项目包中?

构建阶段和 link 框架和库

很简单
  1. 转到应用设置中的构建阶段
  2. 添加你想要的库

所有 dylib 在 mach-o 头文件中都有一个安装路径。该路径位于您的应用程序导入部分,以便链接器可以找到 dylib。当您的进程启动时 dyld 在该路径中搜索 dylib。

您可以像这样检查该路径:

otool -D libapplist.dylib

这就是 dyld 告诉您的内容 - 它找不到 dylib。您有两个选择:

  1. 将您的 dylib 放在需要的地方
  2. 更改安装路径。

如果它是您的 dylib,您可以在您的 dylib 的 xcode 项目设置中更改它 - 搜索 installation directory。当您重建 dylib 和链接它的应用程序时,它们将包含新路径。

如果您无法重新编译dylib,那么您需要手动更改它。方法如下:

install_name_tool -id @executable_path/libapplist.dylib libapplist.dylib

@executable_path 告诉链接器在应用程序可执行文件所在的位置搜索 dylib。