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

时间:2017-08-07 08:52:04

标签: ios objective-c dylib

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

  

dyld:未加载库:@ executable_path / Library.dylib引用   从:   /Users/xxxx/Library/Developer/CoreSimulator/Devices/4CCFE5F7-494B-41DE-AEB9-5040418518B4/data/Containers/Bundle/Application/A97A1947-80B5-9AA0-B46F-C11E25A94553/DyLibTest.app/DyLibTest   原因:未找到图像

在Mac应用程序中,如果我们将它复制到/ usr / lib / path它可以正常工作,但不适用于iOS应用程序。

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

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

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

有两种解决方案:

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

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

希望有所帮助。

答案 1 :(得分:0)

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

项目 - >构建阶段 - >嵌入图书馆

单击“+”并选择* .dylib文件。