入门参考: iOS库-上手一个简单的.framework/.a
静态库、动态库
静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
动态库:程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
总结来说:其实就是加载时机和加载次数的不同。
静态库包括 .a
.framework(自己创建的)
动态库包括 .dylib
.framework(系统框架的)
编译器架构
模拟器(Simulator
)
i386
: 4s
/ 5
(32位模拟器)
x86_64
: 5s
/ 6
/ 6 Plus
( 64位模拟器)
真机(iPhone
)
armv7
: 4
/ 4s
armv7s
: 5
/ 5c
(静态库只要支持了armv7
,就可以跑在armv7s
上)
arm64
: 5s
/ 6
/ 6 Plus
/ 6s
/ 6s Plus
iPhone
的处理器是ARM
.framework
framework
分为四个版本:
真机—调试版本(Debug-iphoneos
)、真机—发布版本(Release-iphoneos
)、
模拟器—调试版本(Debug-iphonesimulator
)、模拟器—调试版本(Release-iphonesimulator
)
开发中一般都打包发布版本,将真机和模拟器版本合并,供外界使用。
.a
和.framework
的区别
.a
是一个纯二进制文件,.framework
中除了二进制文件还有资源文件;
.a
不能直接使用,需要配合.h
文件,.framework
可用直接使用。
Debug
版本和Release
版本的区别
Debug
版本,包含完整的符号信息,以方便调试,不会对代码进行优化。
Release
版本,不会包含完整的符合信息,执行代码是进行过优化的,它的大小比Debug
小,在执行速度方面,Release
版本更快。