当前iOS app 一般要运行在三种不同的ARM平台上, 分别是ARMv7, ARMv7S 和 ARM64(ARMv8), 在Xcode中, 可以定义Target Architectures 为 Standard Architectures, 也就是编译器预先定义好的变量 $(ARCH_STANDARD), 这个自然包含了iOS app所需要支持的不同架构的binary库或App. 但是如果我们的程序并非用Xcode编译 而是用 GNU make 呢? 如何把多种不同架构的biarary combine 在一起呢? 答案是利用MAC OS 的Lipo 工具。
Lipo的命令格式定义如下:
lipo [-info] [-detailed_info] [-arch arch_type input_file] ... [ input_file] ... [-arch_blank arch_type] [-create] [-thin arch_type] [-replace