美文网首页
关于库(library)

关于库(library)

作者: 桔子听 | 来源:发表于2019-05-22 16:10 被阅读0次

    平时我们说的库(library)是对库(library)框架(framework)的通称。我们说swift库,指的是swift动态框架(Swift dynamic framework),因为swift不允许使用静态库(static library)

    那么库(library)框架(framework)有什么区别呢?iOS8之后引入动态框架(dynamic framework)动态框架(dynamic framework)可以包含代码,图片和其他资源。在iOS8之前,只能使用静态库(static library)静态库(static library)会包含多种指令集代码,例如i386armv7等,所以也称作胖静态库(fat static library)静态库(static library)不能包含其他资源,只能是代码。

    还有一点不同是,动态框架(dynamic framework)命名空间(namespace),所以,如果在同一个工程里引入两个动态框架(dynamic framework),有相同名字的类,也不会冲突,但是静态库(static library)就会冲突。

    swift5之前,iOS系统并没有包含swift运行时库(Swift runtime libraries),也就是说,每个swift静态库(static library)都需要把这个运行时库(runtime libraries)包含进去,但是如果有多个静态库(static library),那么就会导致包含进去的运行时库(Swift runtime libraries)冲突。所以,苹果只能用swift动态框架(dynamic framework)

    在使用cocoapod管理依赖时,在podfile里,使用use_frameworks!表示编译生成动态框架(dynamic framework)。所以,如果是swift工程,那就必须使用use_frameworks!,上文说了,swift必须使用动态框架(dynamic framework)

    参考:https://www.raywenderlich.com/626-cocoapods-tutorial-for-swift-getting-started

    相关文章

      网友评论

          本文标题:关于库(library)

          本文链接:https://www.haomeiwen.com/subject/cyyuzqtx.html