繁体   English   中英

我可以在我的iPhone应用程序中使用动态库(共享对象)吗?

[英]can I use dynamic library(shared object) in my iphone app?

众所周知,静态库可以在Iphone应用程序中很好地工作,并且您的应用程序可以很容易地被IOS App Store批准

不幸的是,我现在使用的两个静态库有一些C函数和变量。

所以我将它们编译成* .dylib(动态库),并将它们复制到XCode中的“Bundle Resources”。

dylib_handle = dlopen(dylib_path_in_resource_bundle, RTLD_LAZY);
func = dlsym(dylib_handle, "func");

// invoke func();

这在模拟器和Ipad(当然,不同的动态库)中运行良好。

我注意到有人说Iphone应用程序不支持任何第三方动态库,我的应用程序将被拒绝。 (看这里)

但我仔细阅读了“App Store评论指南”,我发现没有任何项目符合我的问题。

我现在很困惑!

iphone应用程序是否支持动态库? IOS AppStore是否允许这样做?

谁能给我官方回复。

正如贝尔纳多·拉莫斯在评论中所述:“自iOS8以来,我们可以使用动态库”。

App Store不允许使用动态库。 在运行时不能加载任何代码。 答案是将它们转换为静态库并将它们编译到应用程序中。

来自iPhoneOSTechOverview:

“如果要将框架或动态库中的代码集成到应用程序中,则应在构建项目时将该代码静态链接到应用程序的可执行文件中。”

读“应该”为“必须”

请参阅答案: 可以为iOS创建动态库吗?

不,不允许使用动态库。

但是你可以创建静态库,甚至是“静态框架”(就像经典框架一样,是一个带有“.framework”扩展名的文件夹,包含你的Headers,资源文件,如果有的话)和lib本身,除了你的lib必须是静态库)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM