前段时间工作上需要创建一个FrameWork,由于是第一次尝试,所以遇到了一些问题,所以想列举出来供大家参考。
首先编译出来的FrameWork你需要查看它对cpu架构的支持:如下
1.打开终端,进入到你的FrameWork,cd xxxx/xxx.framework
2.查看架构支持,lipo -info xxxx/xxx.framework/xxx (注意:xxx是你的FrameWork名称)
3.如果以上两步都成功,你将会看到。。。is architecture:arm64 armv7 等等。
由于我之前工程的一些特殊性,所以没有办法一次性编译出可以支持 arm64 armv7 i386 架构的FrameWork
所以就涉及到了将FrameWork合并的问题:如下
1.lipo -create /Users/xxxxxxx/Desktop/armv7/xxx.framework/xxx /Users/xxxxxxx/Desktop/arm64/xxx.framework/xxx -output /Users/xxxxxxx/Desktop/arm64andarmv7/xxx。chang这步操作就是将一个支持armv7的FrameWork 和 一个支持arm64的FrameWork 合并成了同时支持arm64、armv7的FrameWork。
2.注意,第一步的操作还木有结束,合包(Framework是合并里面的exec文件,然后将exec文件随意替换到之前的任意一个FrameWork中),也就是说你需要将你在第一步合并出来的exec文件替换到之前任意的一个FrameWork中的exec,一般来说exec文件的名字就是你的FrameWork的名字。
以上,都是我自己操作过并且可以成功使用的,可能描述的不是特别明白,下面是我为大家列举的iOS设备的cpu架构指令集
设备的CPU架构(指令集)
模拟器:
4s-5: i386
5s-6s Plus: x86_64
真机(iOS设备):
armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)
armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2
armv7s: iPhone 5、iPhone 5c
arm64: iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 6s、iPhone 6s Plus、iPad Air、iPad Air2、iPad mini2、iPad mini3