在iPhone上使用本地动态库

时间:2017-06-27 09:36:04

标签: ios iphone dylib dlopen

我的macbook上有一个dylib文件,我想在我创建的iPhone应用程序中使用它。我像往常一样尝试使用dlopen

#include <dlfcn.h>
char* dylibPath = "/Users/benams/lib.dylib";    
void* libHandle = dlopen(dylibPath, RTLD_NOW);

libHandle为空,我想原因是我的iPhone上不存在dylib文件。在调试我的应用程序时,如何解决它并使用此dylib?

1 个答案:

答案 0 :(得分:0)

通常,您也可以在iOS上打开动态库。但是你不能在iOS上为macOS使用动态librray,因为它们有不同的处理器架构(x86_64与arm?)。您必须为arm32和arm64处理器编译库。如果您想部署您的应用程序(在应用程序商店中),您还必须对它们的库进行代码签名。

但是为iOS创建和包含静态库要容易得多,或者使用共享框架。注意:一般情况下,动态库或共享框架只有在重用多个可执行文件(例如app及其扩展)时才有意义。