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

标签 iphone ios

众所周知,静态库在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/

相关文章:

iphone - 如何在表格单元格上添加可点击按钮?

ios - MPVolumeView 仅适用于 iPod

iphone - iCloud 会保留属于已删除应用程序的用户数据吗?

iphone - 如何拉伸(stretch) UIImage 以适合文本?

iphone - NSString - 如何从 "ÁlgeBra"到 "Algebra"

iphone - 使用 Storyboard时单元测试 cellForRowAtIndexPath

ios - 如何使用自定义复选框按钮选择 TableView 行选择?

ios - 是否可以在没有 UITableView 的情况下从 Sqlite(和 CoreData)检索数据 - Swift 3

ios - Alamofire 不会发出 GET 请求,但会成功调用完成处理程序

iphone - 我们可以显示不同类型的 map View 吗?