iOS .a文件的打包过程

废话不多说。直接干。

1、新建一个工程,选择Static Library

iOS .a文件的打包过程

2、文件参数配置

"Build Active Architecture Only"设置NO。

Yes No的区别:
Yes,是只编译当前Architecture版本,是为了编译速度加快。一般我们是在Debug下设置的。
No,系统会编译所有的Architecture版本。

Architecture 代表架构。
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
在这里是向下兼容的。

例如:
当你设置为Yes的时候,在iphone4编译出来的是armv7,那么iphone5是可以运行的。但是armv6的设备是不能运行的。
iOS .a文件的打包过程

IOS Deployment Target 设置你需要支持的最低版本。

iOS .a文件的打包过程

3、分别用模拟器和真机编译一次

iOS .a文件的打包过程
点击 show in folder,就会看到Debug-iphoneos和Debug-iphonesimulator两个文件

Debug-iphoneos:应用于真机的静态库文件。
Debug-iphonesimulator:应用于模拟器调试的静态库文件。
iOS .a文件的打包过程

4、合并成可用的.a文件

现在模拟器的.a文件和真机的.a文件是分开,这时候如果我们在不同的环境下用不通的.a文件,对使用者是不友好的。那么我们需要合并成一个文件来使用。
合并就需要用lipo命令了。
lipo -create/路径/Debug-iphoneos/libStaticLibrary.a /路径/Debug-iphonesimulator/libStaticLibrary.a -output
/Users/。。。。/Desktop/libStaticLibraryFile.a

iOS .a文件的打包过程
合并的后的libStaticLibrary.a就可以在iOS10以上的模拟器和真机都可以使用了。

5、.a文件需要配合.h文件一起使用

iOS .a文件的打包过程