我曾多次在可可豆 Podfile中使用 use_frameworks!。我只是好奇我们为什么要用它?我无法得到直接的答案。
Podfile
use_frameworks!
例如:
platform :ios, '8.0' use_frameworks! target "CityWhether" do pod 'Alamofire' pod 'SwiftyJSON' end
use_frameworks!告诉 CocoaPods 您希望使用框架而不是静态库。由于 Swift 不支持静态库,所以必须使用框架。
在另一个答案中,我解释了静态库和框架之间的区别:
可可触摸框架 它们始终是开源的,并将像你的应用程序一样被构建 当你运行你的应用程序时,Xcode 有时会编译它 框架只支持 iOS8和 但是你可以在框架中使用 Swift 和 Objective-C。 Cocoa Touch 静态库 顾名思义,它们是静态的。因此,当 您可以将它们导入到您的项目中,您可以与其他人共享它们 请注意,目前静态库 不支持 Swift。您必须在 应用程序本身仍然可以用 Swift 编写。
它们始终是开源的,并将像你的应用程序一样被构建 当你运行你的应用程序时,Xcode 有时会编译它 框架只支持 iOS8和 但是你可以在框架中使用 Swift 和 Objective-C。
顾名思义,它们是静态的。因此,当 您可以将它们导入到您的项目中,您可以与其他人共享它们 请注意,目前静态库 不支持 Swift。您必须在 应用程序本身仍然可以用 Swift 编写。
来源: 我的另一个答案 | AddThis.com 博客
use_frameworks!告诉可可豆荚使用动态库,并且在某个时候非常流行,特别是由于迅速不支持静态库,这意味着没有选择-然而你经常需要 use_frameworks!了。
在 Xcode 9 beta 4和 CocoaPods 1.5.0中,现在支持快速静态库。主要的优势是更快的应用程序启动时间,特别是如果你有很多吊舱-iOS10和11不是最快的时候,你有很多 dylibs。
CocoaPods 1.5.0发布于2018年4月初 ,因此您可能需要升级才能获得它: sudo gem install cocoapods。
sudo gem install cocoapods
但是,我发现有几个 pods 还不能正确地使用静态库,因此您的使用范围可能会有所不同。
添加
Use _ Framework!
在 Podfile,这意味着我们希望列出的框架是动态安装的,而不是静态框架。
use_frameworks!声明希望使用 动态框架而不是 静态库。
随着 Xcode 9.0和 CocoaPods 1.5.0的发布,如果您不使用 use_frameworks!,那么您可以使用具有 Swift 的静态库。
use_frameworks!的一个问题是,Pods/Products 中的所有框架都是框架。
这里有一篇相关的文章: Ios 静态和动态框架的基本概述
Cocoapods use _ Framework
Cocoapods< sup > [ About ] use_frameworks!负责二进制的类型:
dynamic framework
static library
use_frameworks!在 Mach-O Type< sup > [ About ] 中反映在 Pods项目的相应目标中。
Mach-O Type
Pods
时间表:
[词汇]