在使用第三方库库Framework或者其它的第三方的时候,库的开发人员可能为了方便打包与发行,常常将i386,x86_64,armv7,arm64多种模式混合起来一起打包,而我们在app提交的时候更本用不到i386和x86_64俩种架构,所以让我们要把它分离出来
解决方法是一种迂回的方式,先分离再合并
首先我们查一下我们的第三方框架都包含多少种CPU架构
lipo -info xxx.framework/xxxxFramework
然后分离你想要的架构
lipo XXXX.framework/XXXX -thin arm64 -output XXXX.framework/XXXX-arm64lipo XXXX.framework/XXXX -thin armv7 -output XXXX.framework/XXXX-armv7
然后合并架构
lipo -create XXXX.framework/XXXX-armv7 XXXX.framework/XXXX-arm64 -output XXXX.framework/XXXX
第二种方法
删除SDK中的i386,x86_64架构
1.使用终端进入到SDK内部
cd /Users/leo/Desktop/testDir/NIMSDK.framework
2.查看当前支持的架构
lipo -info NIMSDK
可以看到NIMSDK当前支持的架构:
Architectures in the fat file: NIMSDK are: i386 x86_64 armv7 arm64
3.删掉i386,x86_64
lipo -remove i386 NIMSDK -o NIMSDK
lipo -remove x86_64 NIMSDK -o NIMSDK
以上是删除架构方法, 也可以取出架构重新组建, 以下方法(未测试)
mkdir ./bak
mkdir ./bak
cp -r Flutter.framework ./bak
lipo Flutter.framework/Flutter -thin armv7 -output Flutter_armv7
lipo Flutter.framework/Flutter -thin arm64 -output Flutter_arm64
lipo -create Flutter_armv7 Flutter_arm64 -output Flutter
mv Flutter Flutter.framew ork/