Answers:
use_frameworks
告诉CocoaPods您要使用框架而不是静态库。由于Swift不支持静态库,因此您必须使用框架。
在另一个答案中,我解释了静态库和框架之间的区别:
可可触摸框架
它们始终是开源的,并且会像您的应用程序一样构建。(因此,在您运行应用程序时以及始终在清理项目后,Xcode有时会对其进行编译。)框架仅支持iOS 8和更高版本,但是您可以在框架中使用Swift和Objective-C。
可可触摸静态库
顾名思义,它们是静态的。因此,当您将它们导入到项目中时,它们已经被编译。您可以与其他人共享而不显示他们的代码。请注意,静态库当前不支持Swift。您将必须在库中使用Objective-C。该应用程序本身仍可以用Swift编写。
资料来源:我的其他答案 | AddThis.com博客
use_frameworks!
告诉可可豆荚使用动态库,并且在某一时刻非常普遍,特别是因为迅速不支持静态库,这意味着别无选择-但是您通常不再需要use_frameworks!
。
从Xcode 9 beta 4和CocoaPods 1.5.0开始,现在支持swift静态库。主要优点是可以加快应用程序的启动时间,尤其是在您有很多Pod的情况下-iOS 10和11在拥有许多dylib时并不是最快的。
CocoaPods 1.5.0于2018年4月上旬发布,因此您可能需要升级才能获取它sudo gem install cocoapods
。
不过,我发现有几个Pod无法与静态库一起正常使用,因此您的行程可能会有所不同。
No such module
错误。这些椰壳动物有问题吗?
use_modular_headers!
到Podfile才能使其与可能需要它但尚未自行启用的Pod一起使用。
use_frameworks
声明要使用动态框架而不是静态库。
随着Xcode 9.0和CocoaPods 1.5.0的发布,如果不使用,您可以快速使用静态库use_frameworks
。
一个问题use_frameworks
是,您在Pod / Products中的所有框架都是框架。
这是相关的文章:ios上静态和动态框架的基本概述
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
一场演出是什么?
Cocoapod的[About] use_frameworks!
负责二进制的类型:
use_frameworks!
是现在 -dynamic framework
use_frameworks!
是不存在的 -static library
use_frameworks!
在相应项目目标的Mach-O Type
[关于]中有反映Pods
。
时间线:
use_frameworks!
,您必须在Swift Pod中使用它