J.b*_*nie 3 linker static-libraries dynamic-library cocoapods swift
在本教程中,如何使用CocoaPods,我无法理解以下段落:
与Objective-C不同,iOS中不包含标准的Swift运行时库!这意味着您的框架必须包含必要的Swift运行时库.因此,用Swift编写的pod必须创建为动态框架.如果Apple允许使用Swift静态库,则会导致使用相同标准运行时依赖项的不同库中出现重复符号.
这是我的问题:
究竟什么是"标准Swift运行时库"?是斯威夫特标准库这样的一个标准快捷的运行时间库,将一个框架,我在写迅速被认为是迅速的运行时库?
"Swift运行时库不包含在iOS中"究竟是什么意思?我想我无法推断出"iOS"所指的内容.
任何有关本段的其他见解,链接,资源或解释将不胜感激!
编辑:
在阅读运行时库wiki文章后,我不再对Q1感到困惑.以下段落为我澄清了这一点:
不应将运行时库的概念与应用程序员创建的或由第三方提供的普通程序库混淆,也不应与动态库混淆,这意味着在运行时链接的程序库.例如,C编程语言只需要一个最小的运行时库(通常称为crt0),但定义了一个必须由每个实现提供的大型标准库(称为C标准库).
但是我仍然对Q2感到困惑.
Objective C有一个稳定的(不变的)运行时库,因此有一个由OS(macOS/iOS)提供的库的共享副本可用于所有需要它的应用程序.相比之下,Swift是一种快速发展的语言,这意味着它的运行时库在版本之间经历了巨大的变化.因此,Xcode将Swift运行时库的副本捆绑在每个应用程序的一部分中,以确保应用程序可以使用运行时库的正确版本(应用程序使用的版本)的副本.