首先,库是为一个或多个架构编译的资源和代码的集合。
静态库(*.a):
对于
静态库(*.a)
,应用程序使用的代码在编译时由静态链接器复制到生成的可执行文件中。
动态库(*.dylib):
动态库(*.dylib)
与静态库不同,它们在运行时与应用程序的可执行文件链接,但不会被复制到可执行文件中。因此,可执行文件更小,并且因为只有在需要时才加载代码,启动时间通常更快。
感谢您接受我的答案!
编译一个或多个架构?
每个架构都需要不同的二进制文件,当您构建应用程序时,Xcode将为您当前使用的任何架构构建正确的二进制文件。例如,如果您要求在模拟器中运行,则它只会构建i386版本(64位为x86_64)。
这意味着构建速度尽可能快。当您存档应用程序或以发布模式构建时,Xcode将为所有三个ARM架构构建,从而使应用程序能够在大多数设备上运行。那其他构建呢?
当然,当您构建框架时,希望开发人员能够在所有可能的架构上使用它,对吧?当然,因为这意味着您可以赢得同行的尊重和钦佩。
因此,您需要让Xcode为所有五个架构构建。此过程创建所谓的fat二进制文件,其中包含每个架构的切片。
arm7: Used in the oldest iOS 7-supporting devices
arm7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator