在 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 文件。
我已经创建了一个名为 '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 文件。