发版App Store项目里使用的framework是不允许包含模拟器架构的,下边我们以xxxSDK.framework为例说下如何拆分模拟器器架构(x86_64)
一、iOS 架构划分:
模拟器
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 【静态库只要支持了armv7,就可以在armv7s的架构上运行】
- arm64:
iPhone 5s
iPhone 6
iPhone 6 Plus
iPhone 6s
iPhone 6s Plus
iPad Air
iPad Air2
iPad mini2
iPad mini3
二、查看架构
lipo -info xxx
打印如下:
edz@edzdemac ImSDK.framework % lipo -info ImSDK
Architectures in the fat file: ImSDK are: armv7 x86_64 arm64
edz@edzdemac ImSDK.framework %
说明包含: armv7 x86_64 arm64 三个架构
三、分离架构
终端输入命令,分别生成对应架构包
lipo ImSDK -thin arm64 -output ImSDK-arm64
lipo ImSDK -thin armv7 -output ImSDK-armv7
lipo ImSDK -thin x86_64 -output ImSDK-x86_64
生成对应的ImSDK-arm64、ImSDK-armv7、ImSDK-x86_64
四、合并架构
将需要的架构合并
lipo -create ImSDK-arm64 ImSDK-armv7 -output abc/ImSDK
最后成成新的ImSDK二进制文件