在 iOS 应用程序中加载自定义动态库 (.dylib)

Load custom dynamic library(.dylib) in iOS application

我已经创建了一个名为 'Library.dylib' 的自定义库,现在我正在尝试将该 dylib 文件添加到另一个 iOS 项目中,但出现以下错误,

dyld: Library not loaded: @executable_path/Library.dylib Referenced from: /Users/xxxx/Library/Developer/CoreSimulator/Devices/4CCFE5F7-494B-41DE-AEB9-5040418518B4/data/Containers/Bundle/Application/A97A1947-80B5-9AA0-B46F-C11E25A94553/DyLibTest.app/DyLibTest Reason: image not found

在 Mac 应用程序中,如果我们将其复制到 /usr/lib/ 路径中,它可以正常工作,但在 iOS 应用程序中则不行。

请告诉我如何在 iOS 应用程序中使用自定义 dylib?

仅供参考,我只想使用动态链接而不是静态链接(.a)

据我所知,您的应用希望将您的库复制到 @executable_path/Library.dylib。但是,如果您将库添加到 Embed Frameworks 构建阶段(我假设您这样做了),它将被复制到应用程序包中的 Frameworks 子文件夹,因此您的应用程序无法加载。

有两种解决方案:

1) 将 Embed Frameworks 构建阶段的目标从 Frameworks 更改为 Executables。一般来说,我不建议更改它。

2) 调整构建设置中的 Runpath Search Paths 以包含 @executable_path/Frameworks.

希望对您有所帮助。

您必须将 *.dylib 文件放入嵌入库中。

项目 -> 构建阶段 -> 嵌入库

点击“+”并选择您的 *.dylib 文件。