iOS .a文件的打包过程
废话不多说。直接干。
1、新建一个工程,选择Static Library
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 Deployment Target 设置你需要支持的最低版本。
3、分别用模拟器和真机编译一次
点击 show in folder,就会看到Debug-iphoneos和Debug-iphonesimulator两个文件
Debug-iphoneos:应用于真机的静态库文件。
Debug-iphonesimulator:应用于模拟器调试的静态库文件。
4、合并成可用的.a文件
现在模拟器的.a文件和真机的.a文件是分开,这时候如果我们在不同的环境下用不通的.a文件,对使用者是不友好的。那么我们需要合并成一个文件来使用。
合并就需要用lipo命令了。
lipo -create/路径/Debug-iphoneos/libStaticLibrary.a /路径/Debug-iphonesimulator/libStaticLibrary.a -output
/Users/。。。。/Desktop/libStaticLibraryFile.a
合并的后的libStaticLibrary.a就可以在iOS10以上的模拟器和真机都可以使用了。