众所周知,静态库在Iphone App中可以很好的运行,并且你的App很容易被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 Review Guidelines”,没有找到符合我问题的项目。
我现在很困惑!
iphone app 支持动态库吗? IOS AppStore 是否允许这样做?
谁能给我官方回复
最佳答案
正如 Bernardo Ramos 在评论中所说:“从 iOS8 开始,我们可以使用动态库”。
App Store 不允许使用动态库。运行时不得加载任何代码。答案是将它们转换为静态库并将它们编译到应用程序中。
来自 iPhoneOSTechOverview:
“如果您想将框架或动态库中的代码集成到您的应用程序中,您应该在构建项目时将该代码静态链接到应用程序的可执行文件中。”
把“应该”读成“必须”
参见 SO 答案:Can create dynamic library for iOS?
关于iphone - 我可以在我的 iPhone 应用程序中使用动态库(共享对象)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955746/