iOS

合并生成模拟器和真机通用的framework

Custom Framework Merging


在使用iOS-Universal-Framework制作framework的过程中经常会遇到编译出来的framework只能被真机使用或者只能被模拟器使用的情况。

造成这个问题的原因是由于在编译时选择的目标设备不同的情况下编译出来framework体系结构不同,选择真机进行编辑时会编译产生armv7armv7sarm64下的库文件,而选择模拟器会产生i386x86_64下的库文件。 具体查看的方法可以执行下列命令:

1
2
3
4
5
$ lipo -info /Debug-iphoneos/Someframework.framwork/Someframework
# Architectures in the fat file: Someframework are: armv7 armv7s arm64 

$ lipo -info /Debug-iphonesimulator/Someframework.framwork/Someframework
# Architectures in the fat file: Someframework are: i386 x86_64 

要同时对模拟器和真机进行支持,只要对两个编译出来的framework进行合并就可以了。

执行如下命令就可以进行合并

1
$ lipo –create /Debug-iphoneos/Someframework.framwork/Someframework Debug-iphonesimulator/Someframework.framwork/Someframework –output Someframework

完成后再查看framework的版本

1
2
$ lipo -info Someframework
# Architectures in the fat file: Someframework are: armv7 armv7s arm64 i386 x86_64


原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

Comments