iOS 8支持动态链接吗?
在iOS7之前,出于安全考虑,苹果不支持动态链接。开发人员之间的代码重用通常依赖于静态库,这些库是作为应用程序可执行文件的一部分构建的 在iOS8中引入扩展似乎会改变这一点,因为扩展是独立的可执行文件。扩展与其包含的应用程序之间的代码共享是通过一个框架完成的。苹果在发布说明中这样说: iOS框架。iOS开发者现在可以创建动态框架。 框架是要封装的代码和资源的集合 跨多个项目具有价值的功能。框架 与扩展完美配合,共享双方都可以使用的逻辑 主应用程序和捆绑的扩展 重点是我的 资料来源: 此外,在《扩展开发指南》中,他们解释说您可以通过“嵌入式框架”在扩展和包含应用程序之间共享代码 资料来源:iOS 8支持动态链接吗?,ios,ios8,ios-frameworks,ios-app-extension,Ios,Ios8,Ios Frameworks,Ios App Extension,在iOS7之前,出于安全考虑,苹果不支持动态链接。开发人员之间的代码重用通常依赖于静态库,这些库是作为应用程序可执行文件的一部分构建的 在iOS8中引入扩展似乎会改变这一点,因为扩展是独立的可执行文件。扩展与其包含的应用程序之间的代码共享是通过一个框架完成的。苹果在发布说明中这样说: iOS框架。iOS开发者现在可以创建动态框架。 框架是要封装的代码和资源的集合 跨多个项目具有价值的功能。框架 与扩展完美配合,共享双方都可以使用的逻辑 主应用程序和捆绑的扩展 重点是我的 资料来源: 此外,在《扩
我的问题是-什么是嵌入式框架,它与动态框架有何不同,我们真的会在iOS8中看到正确的动态链接吗?我读过的所有文档对此似乎都不明确。嵌入式框架只是包含在应用程序包中的框架,而不是安装在系统目录中的全局框架。动态框架并不意味着动态链接的框架。应用程序仍然只是在沙箱环境中工作。您的自定义框架不会与iOS一起安装。使用您开发的通用框架的每个应用程序都将被复制到每个应用程序包中 你可以亲自看看。转到Xcode的派生数据目录,在应用程序的数据中,你会发现所有的嵌入式框架都被复制了 与静态库相比,使用ios8创建框架的唯一新功能是将公共头文件和资产绑定到框架中。如果您在早期版本的Xcode中做过类似的事情,您会记得提供公共标题,然后在Xcode设置中添加搜索路径以及我们必须在单独的包中传递的资产的痛苦 我所看到的使用框架的唯一缺点是,现在我们不能简单地使用lipo为所有类型的架构生成胖静态库 IMO苹果公司使用“动态”一词来表示“独立” 观看WWDC2014-构建现代框架以了解更多详细信息。“嵌入式”和“动态”框架指的不是框架的同一方面。它们不是对立的。首先,让我们定义什么是框架:在苹果的行话中,框架指的是一些已编译代码+所述代码的公共头
- 现在,动态框架是一个框架,其代码构建为动态库。它与“静态”框架相反,后者将代码构建为静态库。如果你想知道,维基百科已经知道静态库和动态库的区别
- 最后,嵌入式框架是封装在应用程序中的框架,而不是安装在系统范围内,例如“/system/Library/Frameworks”