1 min read

如何编译Fat Library

CocoaPods中如果包含一个静态库,怎样编译才能让用户可以在模拟器和真机上使用呢?以IJKMediaFramework为例,下载后打开ios目录中的IJKMediaPlayer.xcodeproj。

1、选中某个模拟器为目标设备,编译,从Products目录中拷贝IJKMediaFramework.framework到桌面,命名为IJKMediaFramework-sim.framework。
2、选中真机或Generic iOS Device,编译,再次保存为IJKMediaFramework-dev.framework
3、使用以下命令合并两个framework中的可执行文件:

lipo -create ./IJKMediaFramework-sim.framework/IJKMediaFramework ./IJKMediaFramework-dev.framework/IJKMediaFramework -output ./IJKMediaFramework

合并后的可执行文件即可同时支持模拟器和真机,使用lipo命令可以查看其支持的CPU架构:

lipo -info IJKMediaFramework
Architectures in the fat file: IJKMediaFramework are: armv7 i386 x86_64 arm64

参考:A noob’s guide to creating a ‘Fat Library’ for iOS