ios - iOS 8 是否支持动态链接?

标签 ios ios8 ios-frameworks ios-app-extension

直到 iOS7,Apple 出于安全考虑不支持动态链接。开发人员之间的代码重用通常依赖于静态库,这些库是作为应用程序可执行文件的一部分构建的。

在 iOS8 中引入扩展似乎稍微改变了这一点,因为扩展是独立的可执行文件。扩展程序与其包含的应用程序之间的共享代码是通过框架完成的。 Apple 在他们的发行说明中这样说:

Frameworks for iOS. iOS developers can now create dynamic frameworks. Frameworks are a collection of code and resources to encapsulate functionality that is valuable across multiple projects. Frameworks work perfectly with extensions, sharing logic that can be used by both the main application, and the bundled extensions.

重点是我的。

来源:https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

此外,在扩展开发指南中,他们解释说您可以通过“嵌入式框架”在扩展和包含的应用之间共享代码。

来源:https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

我的问题是 - 什么是嵌入式框架,它与动态框架有何不同,我们真的会在 iOS8 中看到适当的动态链接吗?我读过的所有文档对此似乎都模棱两可。

最佳答案

“嵌入式”和“动态”框架指的不是框架的同一方面。它们不是彼此的对立面。首先,让我们定义什么是框架:在 Apple 术语中,框架指的是一些编译代码 + 所述代码的公共(public) header 。

  • 现在,动态 框架是一种代码构建为动态库的框架。它与“静态”框架相反,在“静态”框架中,代码将构建为静态库。如果您想知道,维基百科有 a very nice explanation静态库和动态库的区别。

  • 最后,嵌入式框架是打包在应用程序中的框架,而不是安装在系统范围内,例如“/System/Library/Frameworks”。

关于ios - iOS 8 是否支持动态链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080914/

相关文章:

ios - 将 PFQuery 解析为数组 objective-c

ios - iOS 8 中 MPMusicPlayerController iPodMusicPlayer 的替代品

iphone - 基于 View 大小的自适应 UIPresentationController

ios - 在共享框架上节省资源

ios - 如何通过iOS Swift中的回调函数发送JSON响应数据?

ios - 为多种架构构建框架(arm64、armv7、armv7s)

ios - UIImageJPEGRepresentation 返回 nil

ios - UINib initWithNibName 在应用加载前崩溃

ios - 使用按钮将文本添加到 UITableViewcell 中包含的文本字段值

javascript - 什么是 WKWebView 的 WKErrorDomain 错误 4