今天用自动化工具fastlane
打了一个.ipa包发现比Xcode打出来的.ipa包大了很多,然后我把包里面两者的二进制文件拷贝出来仔细检查。
-
Xcode打包的二进制文件才
Xcode打包的二进制50.0mb
-
fastlane打包的二进制文件居然有
fastlane打包的二进制94mb
差不多大了一倍
因为电脑的MachOView用不了了,看不了二进制文件的结构,不过还有otool
神器可以看看二进制的依赖库情况。
- 再看看Xcode打包的二进制文件的情况
-
看看fastlane打包的二进制的情况
fastlane打包的二进制 - 哦豁,多一个
(architecture armv7)
字段,看到armv7
已经破案了,这是32位架构处理器,主要运行在5s以下的老设备上面,fastlane把所有架构需要使用到的库都给我打包进ipa了,不得不说fastlane还是严谨啊。
既然找到原因了,接下来我们去配置fastlane
,让它不要把旧设备的架构打包进来就好了。
搜索了一遍之后发现fastlane似乎没有打包指定架构的action,得要手动去Xcode的Build Settings
设置指定的架构,于是:
设置完之后再用fastlane Archive一次,果然二进制文件和Xcode Archive出来的是一样的了,nice~
fastlane打包的二进制
ps: 这个slather
action好像可以选择架构 http://docs.fastlane.tools/actions/slather/
arch Specify which architecture the binary file is in. Needed for universal binaries
网友评论